我使用的是Ubuntu 12.04.我的系统给出了Boost 1.46.由于我不得不使用boost lockfree队列,我尝试从官方Boost网站安装1.59.因此,我实际上安装了2个版本的boost.系统默认安装在/ usr/local中安装的/ usr /&version 1.59中.
我有一个使用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
)
Run Code Online (Sandbox Code Playgroud)
有了这个,cmake似乎使用/ usr/include(即旧版本的boost).
您可以通过查看configure输出或build目录中的CMakeCache.txt文件来检查找到了哪个boost.configure输出告诉你它找到Boost的路径.在CMakeCache.txt文件中,您可以搜索BOOST_LIB*或BOOST_INCLUDE*,您应该获得库/标头的路径.这有助于识别版本.
如果要指定两个Boost安装中的一个,则传递CMake Boost via的根目录BOOST_ROOT.这看起来像
cmake -DBOOST_ROOT=/usr/local/boost_1.59 <otherstuff>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3777 次 |
| 最近记录: |