【发布时间】:2015-10-19 06:04:19
【问题描述】:
我使用的是 Ubuntu 12.04。我的系统提供 Boost 1.46。由于我必须使用 boost lockfree 队列,我尝试从官方 Boost 网站安装 1.59。因此,我实际上安装了 2 个版本的 boost。系统默认安装在 /usr/ 和版本 1.59 安装在 /usr/local。
我有一个使用 cmake 的代码库。这是一个相当大的代码库。我怀疑 CMake 仍在查看 1.46 版。我应该修复它以在 /usr/local 中查看 1.59 版吗?
我的 CMakeFiles(仅相关部分):
find_package(Boost 1.59 EXACT REQUIRED COMPONENTS system thread date_time)
include_directories(${Boost_INCLUDE_DIRS})
find_package(Threads REQUIRED)
target_link_libraries( hello_node
${Boost_THREAD_LIBRARY}
${catkin_LIBRARIES}
boost_system
boost_thread
rt
boost_date_time
)
target_link_libraries( dgem
${Boost_THREAD_LIBRARY}
${catkin_LIBRARIES}
boost_system
boost_thread
rt
boost_date_time
)
有了这个,cmake 似乎使用 /usr/include (即旧版本的 boost)。
【问题讨论】:
-
通过在 CMakeLists.txt 中添加消息来检查找到了哪个 boost 版本
-
@MertMertce:为什么要添加消息?它由 FindBoost 自己打印。看输出就够了。