在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
答案 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\lib
和C:\cygwin\lib
这样可以解决-luser32
错误。