Boost.Asio链接错误

5
我正在尝试通过串口访问外部设备,并希望使用Boost.Asio实现此目的。我已经为MinGw构建了boost库并成功编译了regex示例。
但是,如果我包含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

对我来说似乎是一个链接问题,但我不太明白。


你缺少了Windows套接字库 - 这是一个注释的原因是我不确定在Mingw下该库叫什么名字。 - Nim
1
以下是答案链接:https://dev59.com/3nI-5IYBdhLWcg3wED5V - Nim
2个回答

10

0

你缺少wsock32库。将其添加到依赖项中,应该就可以正常工作了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接