Поиск абсолютного пути к папке в Cygwin - PullRequest
1 голос
/ 08 июля 2011

Я использую Eclipse для C / C ++, используя cygwin GCC.Мне нужно получить путь к библиотеке "libws2_32.a", который находится в C: \ cygwin \ lib \ w32api для меня в Windows.Однако я не понимаю, как это переводится в cygwin-path.

Я пробовал что-то вроде:

/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 ]

3 голосов
/ 09 июля 2011

Это не проблема с путем;это проблема с именем библиотеки (опция -l).Там, где вы ввели libws2_32.a, вместо этого введите ws2_32.
См. руководство GCC о том, как работает опция -l.

Как правило, при обращении за помощью в программированииНе опиши, а покажи.Не описывайте, что вы делаете;не опишите, что вы думаете, ошибка.Вместо этого покажите точно, что вы делаете, покажите точный код (или урезанную версию, которая демонстрирует ту же проблему) и покажите точное сообщение об ошибке.
Таким образом, другие не должны догадываться, что не таки вы, скорее всего, сразу получите ответ, который решит вашу проблему.

0 голосов
/ 08 июля 2011

Папка C:\Opt\Cygwin\lib\w32api или что-то еще в вашей системе просто /lib/w32api изнутри Cygwin. Библиотека, которую вы ищете: /lib/w32api/libws2_32.a.

Но я не уверен, чего вы пытаетесь достичь. Я полагаю, что ваш Eclipse работает в Windows, а не в версии Java от Cygwin? Почему вы используете Cygwin GCC? Вы хотите скомпилировать для Cygwin? Если нет, то инструментом для выбора будет MinGW или TDM-GCC .

Если вы хотите скомпилировать для среды Cygwin с использованием Eclipse (комбинация, которую я не пробовал), то может помочь пользовательский интерфейс, подобный следующему:

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

(я просто погуглил: eclipse cygwin gcc)

0 голосов
/ 08 июля 2011

Вы можете использовать утилиту find, чтобы найти файл, хотя это может занять некоторое время.

find / -name libws2_32.a -print

Редактировать: В зависимости от вашего изменения вопроса, просто переместите-llibws2_32.a до до ./src/test.o.

...