【问题标题】:Finding an absolute path to a folder in Cygwin在 Cygwin 中查找文件夹的绝对路径
【发布时间】:2011-10-01 10:57:17
【问题描述】:

我正在使用 cygwin GCC 为 C/C++ 运行 Eclipse。我需要在 Windows 中为我获取“libws2_32.a”的库路径,该路径位于 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

【问题讨论】:

  • /cygdrive/c/cygwin/lib/w32api 应该可以工作。你的 cygwin 必须以一种奇怪的方式配置。

标签: c eclipse path makefile cygwin


【解决方案1】:

您可以使用find 实用程序查找文件,但可能需要一段时间。

find / -name libws2_32.a -print

编辑:根据您对问题的编辑,只需将-llibws2_32.a移动到之前./src/test.o

【讨论】:

  • 我收到“检测到文件系统循环:'/cygdrive/c/cygwin/' 是与 / 相同的文件系统循环的一部分”
  • 你确定吗?这个makefile是由eclipse自动生成的。
  • @KaiserJohaan,不,我不确定,但我是根据错误消息猜测的。
【解决方案2】:

文件夹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

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

【讨论】:

  • 不,那只是将 gcc.exe 添加到 PATH,而不是 gcc lib 路径,不幸的是
【解决方案3】:

路径没有问题;这是库名称的问题(-l 选项)。 在您输入libws2_32.a 的地方,输入ws2_32
请参阅 the GCC manual 了解 -l 选项的工作原理。

一般来说,在寻求编程帮助时,不要描述,而是展示。不要描述你在做什么;不要描述你认为的错误是什么。相反,准确地显示您正在做的事情,显示准确的代码(或显示相同问题的缩减版本),并显示准确的错误消息。
这样,其他人就不必猜测问题出在哪里,而且您更有可能立即收到解决您问题的答案。

【讨论】:

  • 我认为这仅适用于 unix 系统而不是 windows。它奏效了。
猜你喜欢
  • 1970-01-01
  • 2010-11-19
  • 2021-02-06
  • 1970-01-01
  • 1970-01-01
  • 2011-03-13
  • 2011-06-29
  • 1970-01-01
相关资源
最近更新 更多