无法在 Linux Mint 上使用 CMake 找到提升

Cannot find boost with CMake on Linux Mint

我一直在用 C++ 开发一个库,运行 在尝试将 boost 集成到我的项目中时遇到了一些困难。我保留了找不到 boost 的消息,但另一方面,我使用 Arch 的开发人员没有遇到任何问题。

我们发现这是因为 Linux Mint(至少使用 libboost-all-dev 软件包)将库安装到 /usr/lib/x86_64-linux-gnu,而 FindBoost 模块未搜索到。我们通过创建符号链接解决了这个问题:

ln -s /usr/lib/x86_64-linux-gnu/libboost* /usr/lib/

我想知道的是:有没有更好(更可接受)的方法来解决这个问题,因为当我编译主要项目时,我不会 运行 遇到这个问题。

这里是CMakeLists.txt(有一些遗漏)

cmake_minimum_required(VERSION 2.8)
project(testlibrary CXX)

set(CMAKE_CXX_FLAGS "-std=c++0x ${CMAKE_CXX_FLAGS}")

set(Boost_USE_STATIC_LIBS ON)
set(Boost_USE_MULTITHREADED OFF)
set(Boost_USE_STATIC_RUNTIME OFF)

find_package(Boost 1.55.0 COMPONENTS unit_test_framework thread log REQUIRED)

include_directories(${Boost_INCLUDE_DIRS})

add_library(testlibrary STATIC ${SOURCE_MAIN})

target_link_libraries(testlibrary ${Boost_LIBRARIES})

可以设置提示BOOST_LIBRARYDIR:

set(BOOST_LIBRARYDIR "/usr/lib/x86_64-linux-gnu")
find_package(Boost 1.55.0 COMPONENTS unit_test_framework thread log REQUIRED)

或者,您可以在 运行ning CMake 时这样设置:

cmake -DBOOST_LIBRARYDIR="/usr/lib/x86_64-linux-gnu" <project_root>

如果你 运行:

cmake <project_root>

然后 FindBoost.cmake 将在常用位置查找您的 boost 库。

请参阅您的 CMake 版本 hereFindBoost.cmake 文档。