如何确定boost的静态lib路径?

时间:2015-05-11 12:27:33

标签: c++ linux boost cmake

我使用它来进行libboost-system和libboost-filesystem静态编译:

add_library(boost_system STATIC IMPORTED)
SET_TARGET_PROPERTIES(boost_system PROPERTIES IMPORTED_LOCATION /usr/lib/libboost_system.a)

add_library(boost_filesystem STATIC IMPORTED)
SET_TARGET_PROPERTIES(boost_filesystem PROPERTIES IMPORTED_LOCATION /usr/lib/libboost_filesystem.a)

target_link_libraries(mysuperprogram ${LIBS} boost_system boost_filesystem)

问题是我的开发机器(Linux Mint 17.1)libboost_*.a文件安装在/usr/lib/x86_64-linux-gnu中,但是在构建机器(Ubuntu 12.04.5 x64)上,我需要为生产库编译它们只需安装在/usr/lib

如何确定lib路径并在CMakeLists.txt中使用它?可能有任何系统变量或类似的东西吗?

1 个答案:

答案 0 :(得分:1)

您可以使用CMake的find_package功能。将以下行添加到CMakeLists.txt:

set(Boost_USE_STATIC_LIBS ON) 
find_package(Boost COMPONENTS boost_system REQUIRED)
link_libraries(${Boost_LIBRARIES})

另请参阅:http://www.cmake.org/cmake/help/v3.0/module/FindBoost.html