我尝试用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 等等 并且一起但没有任何效果。
可能导致此问题的原因是什么?
答案 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