ошибка компиляции gcc cygwin - PullRequest
       0

ошибка компиляции gcc cygwin

2 голосов
/ 25 ноября 2010

Какие минимальные пакеты для работы с gcc под Cygwin?Я установил 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 есть dll-файлы с именем user32 advapi shell32.компоновщик их ищет, но не находит?это проблема, связанная с путем?когда я иду $ PATH

$ $PATH
bash: /usr/local/bin:/usr/bin:/bin:/cygdrive/c/Program: No such file or directory

и повторяю $ 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

Ответы [ 3 ]

4 голосов
/ 25 ноября 2010

Очевидно, вы используете функции MingW (user32 - это библиотека Microsoft, а не POSIX). Таким образом, вы должны установить пакеты MingW. Здесь - список; Я сомневаюсь, что вам нужны все из них (точный набор будет зависеть от приложения, которое вы пытаетесь создать).

0 голосов
/ 01 июня 2011

Возможно, у вас нет w32api в папках.

Перейдите по адресу: C:\cygwin\usr\lib\w32api и скопируйте все файлы в C:\cygwin\usr\lib и C:\cygwin\lib. Это должно исправить ошибки -luser32.

0 голосов
/ 07 декабря 2010

Попробуйте добавить -L / lib / w32api (и, возможно, -I / usr / inclulde / w32api, если ваш код включает в себя "windows.h") к опциям gcc.

Вы также можете найти LDFLAGSв вашем make-файле и добавьте его с помощью "-L / lib / w32api" (без кавычек).Вы можете сделать то же самое с переменной CFLAGS, если вам нужен путь включения, упомянутый выше.

...