g ++构建具有boost依赖关系的c ++程序

时间:2018-03-14 10:15:42

标签: c++ boost g++

我想在Windows上使用g ++编译和运行一个简单的c ++ websocket应用程序。

Boost安装如下:

./bootstrap.bat mingw
./b2.exe install --prefix=C:/boostLibs toolset=gcc

我的c ++包括以下内容:

#include <websocketpp/config/asio_no_tls.hpp>

#include <websocketpp/server.hpp>

#include <iostream>

此websocket样本由https://github.com/zaphoyd/websocketpp

提供

为了构建项目,我发出以下命令:

g++ -Wno-deprecated -I ./cppServer/libs/ -I C:\boostLibs\include\boost-1_55 -L C:\boostLibs\lib -g ./cppServer/server.cpp -lboost_system

这让我误以为:

  

c:/ mingw / bin /../ lib / gcc / mingw32 / 6.3.0 /../../../../ mingw32 / bin / ld.exe:找不到-lboost_system   collect2.exe:错误:ld返回1退出状态

如果我尝试在没有 -lboost_system 的情况下进行构建,我会得到一个非常长的异常,从以下开始:

  

C:/boostLibs/include/boost-1_55/boost/system/error_code.hpp:222:对boost::system::generic_category()' C:/boostLibs/include/boost-1_55/boost/system/error_code.hpp:223: undefined reference to boost :: system :: generic_category()&#39;的未定义引用   C:/boostLibs/include/boost-1_55/boost/system/error_code.hpp:224:未定义引用boost::system::system_category()' C:\Users\JOHANN~1.HAS\AppData\Local\Temp\ccpKMWTH.o: In function ZN5boost6system10error_codeC1Ev&#39;:   C:/boostLibs/include/boost-1_55/boost/system/error_code.hpp:323:对boost::system::system_category()' C:\Users\JOHANN~1.HAS\AppData\Local\Temp\ccpKMWTH.o: In function的未定义引用ZN5boost6system4errc20make_error_conditionENS1_6errc_tE&#39;:   C:/boostLibs/include/boost-1_55/boost/system/error_code.hpp:488:对boost::system::generic_category()' C:\Users\JOHANN~1.HAS\AppData\Local\Temp\ccpKMWTH.o: In function的未定义引用ZN5boost16thread_exceptionC2EiPKc&#39;

那我错过了什么?我现在无法解决这个问题。

1 个答案:

答案 0 :(得分:0)

boost_system链接为-lboost_system-mgw63-mt-1_55,因为这就是调用这些文件的内容。有关详细信息,请参阅boost library naming

当您构建提升时,您可能希望将--layout=system指定为b2.exe,以便您的文件在文件名中没有-mgw63-mt-1_55,然后在链接时使用-lboost_system反对它。