Pet*_*ter 6 boost cmake anaconda
我正在尝试通过 CMake 在 Linux 上构建一个依赖于 Boost 的项目。该项目的 CMakeLists.txt 包含以下行:
find_package(Boost 1.46 REQUIRED COMPONENTS system thread filesystem)
Run Code Online (Sandbox Code Playgroud)
出于可重复性的原因,我已经通过安装了所需的 Boost 标头,conda install libboost以便它们位于
~/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)
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能让 CMake 找到我的 Boost 标头?
为了给 CMake 提示,你的系统上安装了 Boost,你必须BOOST_ROOT相应地设置变量。在你的例子中,这似乎是
BOOST_ROOT=~/anaconda3/envs/.../
Run Code Online (Sandbox Code Playgroud)
请注意,您必须指定lib和include文件夹的父目录。文件树应如下所示:
BOOST_ROOT/
|-- include/
| |-- boost/
| | |-- *.hpp
| | `-- ...
| `-- ...
`-- lib/
|-- libboost_*.so
`-- ...
Run Code Online (Sandbox Code Playgroud)
另请注意:您仅编写有关标头的内容,但请记住,您要使用的这三个组件不是仅标头的,而是您的程序必须链接的实际库。
| 归档时间: |
|
| 查看次数: |
4209 次 |
| 最近记录: |