c++ - 如何确定boost的静态库路径?

标签 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中使用它?可能有任何系统变量或类似的东西吗?

最佳答案

您可以使用 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

关于c++ - 如何确定boost的静态库路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30167643/

相关文章:

c++ - 用于检索集合中第 k 个最小/最大项目的数据结构(STL 或 Boost)?

c++ - 无法正确构建 Boost

linux - 如何在 Linux shell 中查找随机文件

c++ - 二进制文件格式与基于文本的格式文件大小

c++ - 使用 g++ 创建共享库和静态库(在 Windows 下)

c++ - Windows 7 设备 ContainerID 的替代品

linux - 在 Raspberry PI 中,如何实现对 SD 卡的最小写入周期并随时拔下 RPI?

c++ - 服务器关闭时客户端上的 boost asio 写入操作被阻止

c++ - 从我的应用程序的 ListView 拖放到外部应用程序(例如 Windows 资源管理器)

c++ - 如何知道何时单击组合框的向下箭头?