我使用cygwin GCC运行Eclipse for C / C ++。我需要获取“libws2_32.a”的库路径,在Windows中为我提供C:\ cygwin \ lib \ w32api。但是我不明白这是如何转化为cygwin路径的。
我尝过这样的话:
/cygdrive/c/cygwin/lib/w32api
/lib/w32api
/usr/lib/w32api
有什么想法吗?
编辑:更新
这是用于构建的make Eclipse日志,如果它有帮助:
make all
Building target: Filesharing_core.dll
Invoking: Cygwin C Linker
gcc -L/cygdrive/c/cygwin/lib/w32api -shared -o"Filesharing_core.dll" ./src/test.o -llibws2_32.a
/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/bin/ld: cannot find -llibws2_32.a
collect2: ld returned 1 exit status
make: *** [Filesharing_core.dll] Error 1
答案 0 :(得分:3)
路径不是问题;它是库的名称(-l
选项)的问题。
您输入libws2_32.a
的位置,请输入ws2_32
有关-l
选项的工作原理,请参阅the GCC manual。
通常,在寻求编程方面的帮助时,请不要描述,但要显示。不要描述你在做什么;不要描述你认为错误是什么。相反,请准确显示您正在执行的操作,显示确切的代码(或显示相同问题的缩减版本),并显示确切的错误消息。
通过这种方式,其他人不必猜测错误是什么,并且您更有可能立即收到解决问题的答案。
答案 1 :(得分:0)
您可以使用find
实用程序查找文件,但可能需要一段时间。
find / -name libws2_32.a -print
修改:根据您对问题的修改,只需在 -llibws2_32.a
之前将./src/test.o
移至。
答案 2 :(得分:0)
文件夹C:\Opt\Cygwin\lib\w32api
或系统中的任何内容只是来自Cygwin中的/lib/w32api
。您正在寻找的图书馆是/lib/w32api/libws2_32.a
。
但我不确定你想要达到的目标。我猜你的Eclipse在Windows中运行,而不是从Cygwin化的Java版本运行?你为什么使用Cygwin GCC?你想为Cygwin编译吗?如果没有,MinGW或TDM-GCC将成为可供选择的工具。
如果您确实想使用Eclipse(我没有尝试过的组合)编译Cygwin环境,那么以下用户体验可能会有所帮助:
http://www.benjaminarai.com/benjamin_arai/index.php?display=/eclipsecygwingcc.php
(我只是用Google搜索:eclipse cygwin gcc)