无法在 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 版本 here 的 FindBoost.cmake
文档。
我一直在用 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 版本 here 的 FindBoost.cmake
文档。