Boost with Cmake on linux (ubuntu)

This CMakeLists.txt file:

 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}) 

When I execute cmake .. in my build directory, cmake successfully creates the files.

But when I run the make directory in build , I get the following errors:

 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 

in my main.cpp source file, I just called boost::filesystem::is_directory to test boost .

+6
source share
1 answer

You should also add the boost :: system library component to your CMakeLists.txt file.

find_package (Boost 1.55.0 COMPONENTS file system system REQUIRED)

+13
source

All Articles