Как использовать 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
вызов.