簡體   English   中英

使用 boost.asio 在 linux 系統上編譯 mingw32 可執行文件的問題

[英]Problem with compiling a mingw32 executable on linux system with 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 時應該仍然可以正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM