CMake находит неправильные заголовки для библиотек python 3.8 до 20.04

, который я недавно обновил с 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 ведет себя неожиданно. Что здесь не так?

1
задан 13 April 2021 в 19:38

1 ответ

Покопавшись, я понял, что find_package (PythonLibs) устарел , начиная с CMake 3.12 (совпадает с моим обновлением до 20.04) . Использование find_package (разработка интерпретатора компонентов Python 3.8) вместо этого находит правильные заголовки.

0
ответ дан 23 April 2021 в 23:22

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

Похожие вопросы: