Это моя первая попытка написать файл cmake для проекта производственного уровня, я просто пытаюсь найти пакет boost python (v 1.67.0) с помощью cmake.
У меня очень маленький файлCMakeLists.txt
.
cmake_minimum_required(VERSION 3.13)
find_package(Boost 1.67.0 REQUIRED COMPONENTS system python37)
if(Boost_FOUND)
message("Boost_FOUND")
endif()
Работает нормально, если я просто пытаюсь найти system
, но не получается при добавлении python37
.Согласно документации FindBoost , я должен упомянуть это так, как я это упомянул.Это вывод, который я получаю:
CMake Error at /usr/share/cmake-3.13/Modules/FindBoost.cmake:2100 (message):
Unable to find the requested Boost libraries.
Boost version: 1.67.0
Boost include path: /usr/include
Could not find the following Boost libraries:
boost_python37
Some (but not all) of the required Boost libraries were found. You may
need to install these additional Boost libraries. Alternatively, set
BOOST_LIBRARYDIR to the directory containing Boost libraries or BOOST_ROOT
to the location of Boost.
Call Stack (most recent call first):
CMakeLists.txt:2 (find_package)
-- Configuring incomplete, errors occurred!
Когда я запускаю $ locate libboost_python
, я получаю следующий вывод:
/usr/lib/x86_64-linux-gnu/libboost_python-py27.so.1.65.1
/usr/lib/x86_64-linux-gnu/libboost_python27.so.1.67.0
/usr/lib/x86_64-linux-gnu/libboost_python3-py37.so.1.65.1
/usr/lib/x86_64-linux-gnu/libboost_python37.so.1.67.0
Учитывая этот вывод, я предполагаю, что пакет / библиотекаподарок.Итак, я попытался добавить следующую строку в CMakeLists.txt
:
set(BOOST_LIBRARYDIR "/usr/lib/x86_64-linux-gnu")
Но ошибка осталась.Что мне здесь не хватает?