2012-01-11 5 views
5

J'essaie d'accéder à un périphérique externe via un port série et que vous souhaitez utiliser Boost.Asio pour cette proposition. J'ai construit les bibliothèques boost pour MinGw et compilé l'exemple regex avec succès.Boost.Asio erreur de liaison

Mais j'ai des problèmes pour compiler mon code si j'inclure quelque chose de Boost.Asio:

#include <boost/asio/serial_port.hpp> 

int main() { 

    return 0; 
} 

g++ -D _WIN32_WINNT=0x0501 -O0 -g3 -Wall -c -fmessage-length=0 -osrc\SerialPortTest.o ..\src\SerialPortTest.cpp 
g++ -LC:\boost-libs\boost\bin.v2\libs\thread\build\gcc-mingw-4.5.2\release\link-static\threading-multi -LC:\boost-libs\boost\bin.v2\libs\system\build\gcc-mingw-4.5.2\release\link-static\threading-multi -oSerialPortTest.exe src\SerialPortTest.o -lboost_thread-mgw45-mt-1_48 -lboost_system-mgw45-mt-1_48 
src\SerialPortTest.o: In function `ZN5boost4asio6detail17winsock_init_base7startupERNS2_4dataEhh': 
c:/mingw/bin/../lib/gcc/mingw32/4.5.2/../../../../include/boost/asio/detail/impl/winsock_init.ipp:39: undefined reference to `[email protected]' 
src\SerialPortTest.o: In function `ZN5boost4asio6detail17winsock_init_base7cleanupERNS2_4dataE': 
c:/mingw/bin/../lib/gcc/mingw32/4.5.2/../../../../include/boost/asio/detail/impl/winsock_init.ipp:48: undefined reference to `[email protected]' 
collect2: ld returned 1 exit status 

Pour moi, il semble être un problème de liaison, mais je ne comprends pas.

+0

vous manquez la bibliothèque windows sockets - raison pour laquelle c'est un commentaire, c'est que je ne suis pas sûr de ce que la bibliothèque est appelée sous mingw – Nim

+1

Et voici la réponse: http: // stackoverflow. com/questions/2033608/mingw-linker-erreur-winsock – Nim

Répondre

9

Ajouter un indicateur -lws2_32 à lier à la bibliothèque WinSockets.

En outre, cela pourrait être utile: MinGW linker error: winsock

0

Vous manquez bibliothèque wsock32. Ajoutez ceci à vos dépendances et cela devrait fonctionner.