当我使用代码编译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>
我的意思是我尝试了很多事情来解决它,这让我非常生气,您知道为什么吗?
最佳答案
对于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重新链接时仍可以正常工作。
关于c++ - 使用boost.asio在Linux系统上编译mingw32可执行文件的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59535723/