MinGW + Boost: undefinierter Verweis auf 'WSAStartup @ 8'

8

unten ist was ich ausführe

D:\Just4Fun\software\>make -f Makefile.hands stest
g++.exe -g -D_WIN32_WINNT=0x0601 -ID:\Boost\boost_1_51_0 -LD:\Boost\boost_1_51_0\stage\lib -LD:\MinGW\lib -lboost_system-mgw46-d-1_51 -lboost_filesystem-mgw46-d-1_51 -lboost_iostreams-mgw46-d-1_51 -lws2_32 -lwsock32 -o TestSerial.exe TestSerial.cpp

unten ist das Ergebnis davon

C:\Users\oleg\AppData\Local\Temp\ccXpC7RG.o: In function 'ZN5boost4asio6detail17winsock_init_base7startupERNS2_4dataEhh': D:/Boost/boost_1_51_0/boost/asio/detail/impl/winsock_init.ipp:39: undefined reference to 'WSAStartup@8'C:\Users\oleg\AppData\Local\Temp\ccXpC7RG.o: In function 'ZN5boost4asio6detail17winsock_init_base7cleanupERNS2_4dataE': D:/Boost/boost_1_51_0/boost/asio/detail/impl/winsock_init.ipp:48: undefined reference to 'WSACleanup@0' collect2: ld returned 1 exit status make: *** [stest] Error 1

Unten ist das Ergebnis der Überprüfung von Bibliotheken bezüglich der erwähnten Symbole (ich habe es nicht richtig formatiert)

'd: \ MinGW \ lib & gt; nm -C libws2_32.a | grep WSAStartup
00000000 T WSAStartup @ 8
00000000 I imp _ WSAStartup @ 8

d: \ MinGW \ lib & gt; nm -C libws2_32.a | grep WSACleanup
00000000 T WSACleanup @ 0
00000000 I imp _ WSACleanup @ 0

d: \ MinGW \ lib & gt; nm -C libwsock32.a | grep WSACleanup
00000000 T WSACleanup @ 0
00000000 I imp _ WSACleanup @ 0

d: \ MinGW \ lib & gt; nm -C libwsock32.a | grep WSAStartup
00000000 T WSAStartup @ 8
00000000 I imp _ WSAStartup @ 8 '

Wie wir sehen, sind in den Bibliotheken Symbole vorhanden, und Bibliotheken befinden sich an dem Ort, auf den durch die entsprechenden Befehlszeilenoptionen -L verwiesen wird.
Also, warum "undefined Referenz" ????

    
OlegG 18.09.2012, 07:55
quelle

1 Antwort

14

Es ist ein sehr häufiger Fehler mit einer sehr einfachen Lösung: Platzieren Sie die Bibliotheken, die Sie verlinken mit nach den Quell- und Objektdateien.

    
Some programmer dude 18.09.2012, 08:04
quelle

Tags und Links