gpt4 book ai didi

boost - 使 cmake 的 find_package(Boost ...) 在 conda 环境中找到头文件

转载 作者:行者123 更新时间:2023-12-02 00:53:42 25 4
gpt4 key购买 nike

我正在尝试通过依赖于 Boost 的 CMake 在 Linux 上构建一个项目。项目的 CMakeLists.txt 包含以下行:

find_package(Boost 1.46 REQUIRED COMPONENTS system thread filesystem)

出于可重复性的原因,我通过 conda install libboost 安装了所需的 Boost 头文件。以便它们位于 ~/anaconda3/envs/.../include/boost而不是 /usr/local/include .不是当我跑 cmake ,我收到以下错误:
CMake Warning at /usr/share/cmake-3.7/Modules/FindBoost.cmake:761 (message):
Imported targets not available for Boost version
Call Stack (most recent call first):
/usr/share/cmake-3.7/Modules/FindBoost.cmake:865 (_Boost_COMPONENT_DEPENDENCIES)
/usr/share/cmake-3.7/Modules/FindBoost.cmake:1470 (_Boost_MISSING_DEPENDENCIES)
cmake/Dependencies.cmake:5 (find_package)
CMakeLists.txt:43 (include)

我该怎么做才能让 CMake 找到我的 Boost header ?

最佳答案

为了给 CMake 一个提示,你的系统上安装了 Boost,你必须设置 BOOST_ROOT相应地可变。在你的例子中,这似乎是

BOOST_ROOT=~/anaconda3/envs/.../

注意必须指定 lib的父目录和 include文件夹。文件树应如下所示:
BOOST_ROOT/
|-- include/
| |-- boost/
| | |-- *.hpp
| | `-- ...
| `-- ...
`-- lib/
|-- libboost_*.so
`-- ...

另一个注意事项:您只写标题,但请记住,您要使用的这三个组件是 not header-only ,但是是您的程序必须链接到的实际库。

关于boost - 使 cmake 的 find_package(Boost ...) 在 conda 环境中找到头文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55934253/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com