gcc cygwin编译错误

时间:2010-11-24 22:30:14

标签: gcc cygwin

在cygwin下使用gcc的最小包是什么? 我已经安装了gcc-core,gcc-g ++,gdb,binutils,make。这些还不够吗?当我尝试编译基本的c代码时,我得到以下错误

/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/bin/ld: cannot find
 -luser32
/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/bin/ld: cannot find
 -lkernel32
/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/bin/ld: cannot find
 -ladvapi32
/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/bin/ld: cannot find
 -lshell32

system32中有名为user32 advapi shell32的dll文件。链接器是否搜索它们但找不到? 这是路径相关的问题吗?当我去$ PATH

$ $PATH
bash: /usr/local/bin:/usr/bin:/bin:/cygdrive/c/Program: No such file or directory

和echo $ PATH

$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/cygdrive/c/Program Files/PC Connectivity Solution/
:/cygdrive/c/Program Files/MiKTeX 2.8/miktex/bin:/cygdrive/c/WINDOWS/system32:/c
ygdrive/c/WINDOWS:/cygdrive/c/WINDOWS/System32/Wbem:/cygdrive/c/Program Files/AT
I Technologies/ATI.ACE/Core-Static:/cygdrive/c/Program Files/MATLAB/R2010a/runti
me/win32:/cygdrive/c/Program Files/MATLAB/R2010a/bin:/cygdrive/c/Program Files/S
amsung/Samsung PC Studio 3/:/cygdrive/c/Cygwin/bin:/cygdrive/c/Cygwin/usr/bin

3 个答案:

答案 0 :(得分:4)

显然,您使用的是MingW功能(user32是Microsoft库,而不是POSIX)。所以你应该安装MingW软件包。 Here是一个列表;我怀疑你需要所有这些(确切的设置将取决于你想要构建的应用程序)。

答案 1 :(得分:0)

尝试将-L / lib / w32api(以及可能的-I / usr / inclulde / w32api,如果您的代码包含“windows.h”)添加到gcc选项中。

您还可以在makefile中查找LDFLAGS,并使用“-L / lib / w32api”(不带引号)添加它。如果需要上面提到的包含路径,可以对CFLAGS变量执行相同的操作。

答案 2 :(得分:0)

您可能没有文件夹中的w32api

转到:C:\cygwin\usr\lib\w32api并将所有文件复制到C:\cygwin\usr\libC:\cygwin\lib这样可以解决-luser32错误。