Reputation: 3862
This my 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 generates files .
But when i run make
in build
directory i get 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
function for testing boost
.
Upvotes: 7
Views: 3464
Reputation: 5135
You also should add boost::system library component in your CMakeLists.txt file
find_package(Boost 1.55.0 COMPONENTS filesystem system REQUIRED)
Upvotes: 13