Linkerfehler bei Boost::asio: undefined reference to WSACleanup (@0) [GELÖST]
-
Hi (zum zweiten mal diese Woche),
ich wollt' mich jetzt mal ein wenig mit boost::asio auseinandersetzen, hab auch ein "Test"-Code aus 'nem Tutorial kopiert und wunder mich jetzt über die Linkerfehler (die ich natürlich schon ein halbes dutzend mal gegoogelt und trotzdem nicht gelöst habe):
#include <boost/asio.hpp> #include <iostream> void handler(const boost::system::error_code &ec) { std::cout << "5 s." << std::endl; } int main() { boost::asio::io_service io_service; boost::asio::deadline_timer timer(io_service, boost::posix_time::seconds(5)); timer.async_wait(handler); io_service.run(); }Ausgabe:
C:\Boost\include\boost-1_48\boost\asio\detail\config.hpp|167|warning: #warning Please define _WIN32_WINNT or _WIN32_WINDOWS appropriately. [-Wcpp]| C:\Boost\include\boost-1_48\boost\asio\detail\config.hpp|168|warning: #warning For example, add -D_WIN32_WINNT=0x0501 to the compiler command line. [-Wcpp]| C:\Boost\include\boost-1_48\boost\asio\detail\config.hpp|169|warning: #warning Assuming _WIN32_WINNT=0x0501 (i.e. Windows XP target). [-Wcpp]| ///Linkerfehler: C:\Users\-ZENSIERT\Documents\C(++) Saves\TEMPS\TEMP3.o:TEMP3.cxx|| undefined reference to `WSACleanup@0'| unsigned char)]+0x49)||undefined reference to `WSAStartup@8'| ::~winsock_init()]+0x17)||undefined reference to `WSACleanup@0'| C:\Users\-ZENSIERT\Documents\C(++) Saves\TEMPS\TEMP3.o:TEMP3.cxx:(.text$_ZN5boost4asio10io_serviceD1Ev[boost::asio::io_service::~io_service()]+0x11c)||undefined reference to `WSACleanup@0'| ||=== Build finished: 4 errors, 3 warnings ===|Ich hoffe, einer von euch kann mir helfen. Boost::system, bzw. filesystem libraries hab ich schon gelinkt (bringen tut's ja auch was, jetzt gibt es 'nur' noch diese vier Linkerfehler).
Der eigentliche Linkerfehler lautet, es gibt eine undefinierte Referenz auf die Funktion (?) WSACleanup, die AFAIK in der WINAPI bei Sockets am Ende aufgerufen wird.VD im VR

Edit:
Hehe, das ist jetzt etwas peinlich... Hier ist dasselbe bereits gefragt. Ich kann aber die genannte lib nicht finden. Könnt' mir einer sagen, wo ich die (bei Windows 7) im Systemverzeichnis finde?Edit²: Gefunden.

-
Hast du auch die Winsock mitgelinkt? Die Teile von Boost die man compilieren muss (also nicht Header only), sind größtenteils nur plattformunabhängige Wrapper um Betriebssystemfunktionen. Diese müssen daher auch mitgelinkt werden.
-
SeppJ schrieb:
Hast du auch die Winsock mitgelinkt? Die Teile von Boost die man compilieren muss (also nicht Header only), sind größtenteils nur plattformunabhängige Wrapper um Betriebssystemfunktionen. Diese müssen daher auch mitgelinkt werden.
Jaja, alles gefunden, funktioniert jetzt

Tut mir leid, hätte vielleicht VORHER suchen sollen und nicht nach dem Threadpost