我正在尝试用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:boostboost_1_59_0 -o myprogram.exe -LC:boostboost_1_59_0stagelib -lboost_system-mgw48-1_59 myprogram.cpp
我使用了所有不同版本的libboostrongystems标志,例如lboostrongystem-mgw48-1_59.alboostrongystem-mgw48-mt-1_59.a等所有的努力都没有成功。
是什么导致了这个问题?
这个命令有两个问题。
首先,正如在注释中提到的π α ντα ν ν, -lboostrongystem-mgw48-1_59标志必须在目标文件之后。
其次,因为我使用的是windows,所以我还需要添加-lwsock32。
g++ -IC:boostboost_1_59_0 myprogram.cpp -o myprogram.exe - LC:boostboost_1_59_0stagelib -lboost_system-mgw48-1_59 –lwsock32