ld не может найти не может найти -luser32 (из Eclipse) - PullRequest
2 голосов
/ 27 июля 2011

Я пытаюсь сделать разработку CPP из Eclipse ..

Я установил cgywin .. и при попытке компилировать, связать любое простое Hello World приложение, я получил следующее при компоновке ...

/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

Полный вывод:

***Build of configuration Debug for project testcpp***
make all 
Building target: testcpp.exe
Invoking: Cygwin C++ Linker
g++  -o "testcpp.exe"  ./src/testcpp.o   
/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
collect2: ld returned 1 exit status
make: *** [testcpp.exe] Error 1

**** Build Finished ****

Я думаю, что указанные выше libs, необходимые для ld, зависят от выигрыша ...

Я пробовал find / -name *user32*, результат был ..

.....
/usr/i686-pc-mingw32/sys-root/mingw/lib/libuser32.a
......

Это может помочь?

Ответы [ 2 ]

1 голос
/ 24 ноября 2014

Я случайно прервал настройку и начал видеть это:

/usr/lib/gcc/x86_64-pc-cygwin/4.8.3/../../../../x86_64-pc-cygwin/bin/ld: cannot find -lshell32
/usr/lib/gcc/x86_64-pc-cygwin/4.8.3/../../../../x86_64-pc-cygwin/bin/ld: cannot find -luser32
collect2: error: ld returned 1 exit status

Ран "cygcheck -c" в результате все в порядке

Ран "cygcheck -p libuser32.a" и увидел перекрытие между двумя выходами команды

Found 9 matches for libuser32.a
cygwin32-w32api-runtime-3.1.0-1 - Win32 API import libs for Cygwin 32bit toolchain
cygwin32-w32api-runtime-3.2.0-1 - Win32 API import libs for Cygwin 32bit toolchain
mingw-w32api-4.0-1 - MinGW.org Win32 runtime headers and libraries
mingw64-i686-runtime-3.2.0-1 - MinGW-w64 runtime headers and libraries
mingw64-i686-runtime-3.3.0-1 - MinGW-w64 runtime headers and libraries
mingw64-x86_64-runtime-3.1.0-1 - MinGW-w64 runtime libraries for Win32 64bit target
mingw64-x86_64-runtime-3.2.0-1 - MinGW-w64 runtime libraries for Win32 64bit target
w32api-runtime-3.2.0-1 - MinGW-w64 Windows API import libraries for Cygwin
w32api-runtime-3.3.0-1 - MinGW-w64 Windows API import libraries for Cygwin

Запустите установку снова с переустановкой w32api-runtime и проблема решена.

BGH

1 голос
/ 27 июля 2011

Из уведомления выше:

I've tried find / -name *user32*, the result were ..

.....
/usr/i686-pc-mingw32/sys-root/mingw/lib/libuser32.a
......

Is this can help?

Это действительно помогло мне ..

Необходимые библиотеки включены в mingw, но я использую cygwin в затмении. Итак, в каталоге cygwin, который: /usr/i686-pc-cygwin, я сделал следующее: ln -sf ../i686-pc-mingw32/sys-root/mingw/lib lib; Итак, теперь cgywin имеет необходимые библиотеки ...

...