1

我在 Ubuntu 14.04 上安装了这样的 boost:

sudo apt-get install libboost-all-dev libboost-dev

如果我的 CMakeLists.txt 文件中有以下内容:

SET ( Boost_DEBUG               1   )
SET ( Boost_USE_STATIC_LIBS     ON  )
SET ( Boost_USE_MULTITHREADED   ON  )
SET ( Boost_USE_STATIC_RUNTIME  ON  )
FIND_PACKAGE ( Boost COMPONENTS log regex pool date_time REQUIRED )

Cmake 找到其他 boost 库没有问题,但是找不到pool. 我得到以下信息:

CMake Error at /usr/share/cmake-2.8/Modules/FindBoost.cmake:1131 (message):
Unable to find the requested Boost libraries.
Boost version: 1.54.0
Boost include path: /usr/include
Could not find the following static Boost libraries:
    boost_pool

我可以看到文件在它们应该在的位置,以及其余的提升包括:

> locate pool/pool.hpp
/usr/include/boost/pool/pool.hpp

cmake 2.8.12 中是否存在错误,它期望池(仅标头库)具有 .a 或 .so 文件,还是我遗漏了什么?

4

1 回答 1

3

由于 Boost.Pool 仅是标头,因此您不应在find_package调用中列出它。

如果find_package(Boost ...)调用成功,它将找到 Boost 包含的路径,这意味着 Boost.Pool 只需添加${Boost_INCLUDE_DIRS}target_include_directoriesorinclude_directories调用即可自动可用。

于 2014-06-09T21:50:15.030 回答