我正在尝试构建mpi2并在make期间遇到以下错误:
/usr/bin/ld: CMakeFiles/env.dir/env.cc.o: undefined reference to symbol '_ZN5boost6system15system_categoryEv'
/usr/local/boost-1.56.0/lib/libboost_system.so: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
我在运行make之前使用的cmake命令是:
cmake -DCMAKE_BUILD_TYPE=NativeRelease ../ -DBOOST_ROOT=/usr/local/boost-1.56.0/ -DBOOST_INCLUDEDIR=/usr/local/boost-1.56.0/include -DBOOST_LIBRARYDIR=/usr/local/boost-1.56.0/lib
我尝试过连接libboost_system.so,但我不确定如何使用cmake执行此操作(我尝试将-DCMAKE_CXX_FLAGS="-lboost_system"
添加到cmake命令,但这没有效果。)
如何正确地将其与cmake链接以解决此错误?
答案 0 :(得分:0)
我认为问题可能是Boost.System未在CMakeLists.txt中列为要求。
查看https://github.com/uma-pi1/mpi2/blob/master/CMakeLists.txt#L67,似乎system
应在chrono
来电后find_package(Boost ...)
之后立即添加。