【问题标题】:Boost.Asio linking errorBoost.Asio 链接错误
【发布时间】:2012-02-07 22:29:48
【问题描述】:

我正在尝试通过串行端口访问外部设备,并希望为此建议使用 Boost.Asio。 我已经为 MinGw 构建了 boost 库并成功编译了正则表达式示例。

但如果我包含来自 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

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

【问题讨论】:

标签: c++ boost mingw


【解决方案1】:

您想念 wsock32 库。将此添加到您的依赖项中,它应该可以工作。

【讨论】:

    【解决方案2】:

    添加 -lws2_32 标志以链接到 WinSockets 库。

    另外,这可能有用:MinGW linker error: winsock

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多