当我用代码编译Boost.asio程序时:
g++ -o main main.cpp -lboost_system -lboost_thread -pthread
它工作正常,但是如果我将其编译为linux系统上的Windows可执行文件,则代码如下:
x86_64-w64-mingw32-g++ -I /usr/include/boost -o main.exe main.cpp -lboost_system -lboost_thread -pthread
或
x86_64-w64-mingw32-g++ -o main.exe main.cpp -lboost_system -lboost_thread -pthread
出现编译错误
fatal error: boost/asio/io_service.hpp: No such file or directory
#include <boost/asio/io_service.hpp>
我的意思是我尝试了很多事情来解决它,这让我非常生气,您知道为什么吗?
答案 0 :(得分:2)
对于Windows,您应该添加winsockets库作为编译参数。
g++ -o main.exe main.cpp -lboost_system -lboost_thread -pthread -lws2_32 -lwsock32
通常只有“ ws2_32”就足够了。
注意:Winsock2(ws2_32)是Winsock1(wsock32)的扩展。当前与wsock32兼容的程序在与ws2_32重新链接时仍可以正常工作。