, который я недавно обновил с 18.04 до 20.04, и проект использование boost python больше не строится.
Проблема заключается в следующей команде CMake:
find_package(PythonLibs 3)
, которая устанавливает для $ {PYTHON_INCLUDE_DIRS}
значение /usr/include/python3.6m
. Проблема в том, что в 20.4 нет libpython3.6-dev
и, следовательно, нет заголовков в этом месте. Однако у меня есть libpython3.8-dev
.
Даже если я изменю указанное выше на find_package (PythonLibs 3.8)
, я получу
[cmake] Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython3.6m.so (Required is at least version "3.8")
с теми же каталогами include, что и раньше.
Я могу вручную установить (PYTHON_INCLUDE_DIRS /usr/include/python3.8)
, и все работает нормально, так что, похоже, это действительно просто find_package
ведет себя неожиданно. Что здесь не так?
Покопавшись, я понял, что find_package (PythonLibs)
устарел , начиная с CMake 3.12 (совпадает с моим обновлением до 20.04) . Использование find_package (разработка интерпретатора компонентов Python 3.8)
вместо этого находит правильные заголовки.