2012-01-11 20 views
5

Estoy intentando acceder a un dispositivo externo a través de un puerto serie y quiero usar Boost.Asio para esta propuesta. Tengo construir las bibliotecas de impulso para MinGw y compilé el ejemplo de expresiones regulares con éxito.Boost.Asio error de enlace

Pero tengo problemas para compilar mi código si incluyo algo 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 

Para mí parece ser un problema de vinculación, pero yo no lo entiendo.

+0

falta la biblioteca de sockets de Windows - por lo que este es un comentario es que no estoy seguro de qué se llama la biblioteca bajo mingw – Nim

+1

Y aquí está la respuesta: http: // stackoverflow. com/questions/2033608/mingw-linker-error-winsock – Nim

Respuesta

9

Agregue la bandera -lws2_32 para vincularla con la biblioteca WinSockets.

Además, este podría ser útil: MinGW linker error: winsock

0

Usted falta biblioteca wsock32. Agregue esto a sus dependencias y debería funcionar.