Сборка базового проекта C ++ с Boost Python v1.67 и cmake на Ubuntu - PullRequest
0 голосов
/ 19 декабря 2018

Это моя первая попытка написать файл 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")

Но ошибка осталась.Что мне здесь не хватает?

1 Ответ

0 голосов
/ 19 декабря 2018

Похоже, вам не хватает пакета dev, так как нет /usr/lib/x86_64-linux- gnu / libboost_python27.so

Исправлено:

apt-get install libboost-python1.67-dev 
...