2012-01-11 44 views
5

Tôi đang cố truy cập thiết bị ngoại vi qua cổng nối tiếp và muốn sử dụng Boost.Asio cho đề xuất này. Tôi đã xây dựng các thư viện boost cho MinGw và biên dịch thành công ví dụ regex.Boost.Asio lỗi liên kết

Nhưng tôi có vấn đề để biên dịch mã của tôi nếu tôi bao gồm một cái gì đó từ 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 

Đối với tôi nó có vẻ là một vấn đề liên kết, nhưng tôi không nhận được nó.

+0

bạn đang thiếu thư viện ổ cắm cửa sổ - lý do tại sao đây là nhận xét là tôi không chắc chắn trên đỉnh đầu của tôi thư viện được gọi theo mingw – Nim

+1

Và đây là câu trả lời: http: // stackoverflow. com/questions/2033608/mingw-linker-error-winsock – Nim

Trả lời

9

Thêm cờ -lws2_32 để liên kết với thư viện WinSockets.

Ngoài ra, điều này có thể hữu ích: MinGW linker error: winsock

0

Bạn bỏ lỡ thư viện wsock32. Thêm này vào phụ thuộc của bạn và nó sẽ làm việc.