簡體   English   中英

使用MinGW的Boost編譯錯誤

[英]Compiling error with boost with mingw

我正在嘗試使用boost / asio編譯以下程序。

#include <boost/asio.hpp>

int main(){
  boost::asio::io_service ioservice;
  return 0;
}

但是我收到以下鏈接器錯誤

C:\Users\...\ccsKX5WE.o:myprogram.cpp:(.text+0x136)undefined reference to `boost::system::generic_category()'
C:\Users\...\ccsKX5WE.o:myprogram.cpp:(.text+0x140)undefined reference to `boost::system::generic_category()'
C:/mingw/bin/.../ld.exe: C:\Users\...\ccsKx5WE.o: bad reloc address 0xe in section `.text$_|N5boost6system14error_categoryD2Ev]'
collect2.exe@ error: ld return 1 exit status

我這樣使用mingw:

g++ -IC:\boost\boost_1_59_0 -o myprogram.exe -LC:\boost\boost_1_59_0\stage\lib -lboost_system-mgw48-1_59 myprogram.cpp

我已經使用了所有不同版本的libboost_systems標志,例如lboost_system-mgw48-1_59.a lboost_system-mgw48-mt-1_59.a等,所有這些一起使用,但沒有任何效果。

是什么導致此問題?

該命令有兩個問題。

首先,正如注釋中提到的,-lboost_system-mgw48-1_59標志必須位於目標文件之后。

其次,由於我使用的是Windows,因此還需要添加-lwsock32。

g++ -IC:\boost\boost_1_59_0 myprogram.cpp -o myprogram.exe - LC:\boost\boost_1_59_0\stage\lib -lboost_system-mgw48-1_59 –lwsock32

暫無
暫無

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

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