这是我的CMakeLists.txt
档案:
add_definitions(-std=c++11) find_package(Boost 1.55.0 COMPONENTS filesystem REQUIRED) include_directories(${Boost_INCLUDE_DIRS}) add_executable(bst main.cpp) target_link_libraries(bst ${Boost_LIBRARIES})
当我cmake ..
在我的build
目录中执行时,cmake
成功生成文件.
但是,当我make
在build
目录中运行时,我得到以下错误:
amin@aminux:~/Documents/boost_test/build$ make Scanning dependencies of target bst [100%] Building CXX object CMakeFiles/bst.dir/main.cpp.o Linking CXX executable bst /usr/bin/ld: CMakeFiles/bst.dir/main.cpp.o: undefined reference to symbol '_ZN5boost6system15system_categoryEv' //usr/lib/x86_64-linux-gnu/libboost_system.so.1.55.0: error adding symbols: DSO missing from command line collect2: error: ld returned 1 exit status make[2]: *** [bst] Error 1 make[1]: *** [CMakeFiles/bst.dir/all] Error 2 make: *** [all] Error 2
在我的main.cpp
源文件中,我刚刚调用了 boost::filesystem::is_directory
函数进行测试 boost
.
您还应该在CMakeLists.txt文件中添加boost :: system库组件
find_package(需要Boost 1.55.0 COMPONENTS文件系统系统)