Ошибка привязки Boost.Asio

Я пытаюсь получить доступ к внешнему устройству через последовательный порт и хочу использовать Boost.Asio для этого предложения. Я создал библиотеки повышения для MinGw и успешно скомпилировал пример регулярного выражения.

Но у меня проблемы с компиляцией кода, если я включу что-то из 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 `WSAStartup@8'
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 `WSACleanup@0'
collect2: ld returned 1 exit status

Для меня это кажется проблемой связывания, но я не понимаю.


person viktorgt    schedule 11.01.2012    source источник
comment
вам не хватает библиотеки сокетов Windows - причина, по которой это комментарий, заключается в том, что я не уверен, что эта библиотека называется в mingw   -  person Nim    schedule 11.01.2012
comment
И вот ответ: stackoverflow.com/questions/2033608/mingw- линкер-ошибка-winsock   -  person Nim    schedule 11.01.2012


Ответы (2)


Добавьте флаг -lws2_32 для ссылки на библиотеку WinSockets.

Кроме того, это может быть полезно: ошибка компоновщика MinGW: winsock

person Alex Kremer    schedule 11.01.2012

Вам не хватает библиотеки wsock32. Добавьте это в свои зависимости, и это должно работать.

person Toby    schedule 11.01.2012