Как использовать cmake, чтобы найти библиотеку Boost Pool?

Я установил Boost, как это на Ubuntu 14.04:

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 нет проблем с поиском других буст-библиотек, но он не может найти 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, или я что-то упустил?

1 ответ

Решение

Поскольку Boost.Pool предназначен только для заголовков, его не следует перечислять в find_package вызов.

Если find_package(Boost ...) вызов успешен, он найдет путь к включенным Boost, и это будет означать, что Boost.Pool будет автоматически доступен, просто добавив ${Boost_INCLUDE_DIRS} к target_include_directories или же include_directories вызов.

Другие вопросы по тегам