MinGW + Boost: неопределенная ссылка на 'WSAStartup@8'

ниже то, что я выполняю

D:Just4Funsoftware>make -f Makefile.hands stest
g++.exe -g -D_WIN32_WINNT=0x0601 -ID:Boostboost_1_51_0 -LD:Boostboost_1_51_0stagelib -LD:MinGWlib -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

ниже-результат этой

C:UsersolegAppDataLocalTempccXpC7RG.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:UsersolegAppDataLocalTempccXpC7RG.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

Ниже приведен результат проверки библиотек относительно упомянутых symobls (я не смог отформатировать его соответствующим образом)

d:MinGWlib>nm-c libws2_32.a / grep WSAStartup
00000000 T WSAStartup@8
00000000 I ИМП_WSAStartup@8

d:MinGWlib>nm-c libws2_32.команда grep WSACleanup
00000000 T WSACleanup@0
00000000 I ИМП_WSACleanup@0

d:MinGWlib>nm-c libwsock32.a / grep WSACleanup
00000000 T WSACleanup@0
00000000 I ИМП_WSACleanup@0

d:MinGWlib>nm-c libwsock32.a / grep WSAStartup
00000000 T WSAStartup@8
00000000 I ИМП_WSAStartup@8'

Как мы видим, символы существуют в библиотеках, а библиотеки включены место, указанное соответствующими параметрами командной строки-L.
Итак, почему "неопределенная ссылка"????

1 ответов


Это очень распространенная ошибка, с очень простым решением: поместите библиотеки, которые вы связываете с после исходные и объектные файлы.