c++ - 使用boost.asio在Linux系统上编译mingw32可执行文件的问题

标签 c++ linux boost boost-asio

当我使用代码编译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/

相关文章:

c++ - 模拟一堆卡片的最佳容器

c++ - QtConcurrent 在 reportResultsReady 上崩溃

java - 当我从 native Java 方法抛出 C++ 异常时会发生什么?

C++ boost反序列化抛出错误

c++ - 从boost库源码学习c++

C++在编译时将字符串文字转换为多字 rune 字

c++ - FFmpeg捕获窗口时如何避免鼠标指针闪烁?

php - 如何在 Ubuntu 14.04 上更改 php-cli 版本?

iphone - 在 Linux 中开发 iPhone 应用程序

c++ - 针对 Boost 库编译 Nuke 插件