用mingw编译带有boost的错误

时间:2015-09-21 17:29:32

标签: c++ boost boost-asio

我尝试用boost / asio编译以下程序。

Hanlder

但我收到以下链接器错误

#include <boost/asio.hpp>

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

我使用了mingw:

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

我已经使用了所有不同版本的libboost_systems标志,例如 lboost_system-mgw48-1_59.a lboost_system-mgw48-MT-1_59.a 等等 并且一起但没有任何效果。

可能导致此问题的原因是什么?

1 个答案:

答案 0 :(得分:0)

命令有两个问题。

首先,正如评论中提到的πάνταῥεῖ,-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