在Cygwin中查找文件夹的绝对路径

时间:2011-07-08 17:06:32

标签: c eclipse path makefile cygwin

我使用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

3 个答案:

答案 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编译吗?如果没有,MinGWTDM-GCC将成为可供选择的工具。

如果您确实想使用Eclipse(我没有尝试过的组合)编译Cygwin环境,那么以下用户体验可能会有所帮助:

http://www.benjaminarai.com/benjamin_arai/index.php?display=/eclipsecygwingcc.php

(我只是用Google搜索:eclipse cygwin gcc)