Tabla de contenido
NO se pudo encontrar PythonLibs
Error:
CMake Error at /usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
Could NOT find PythonLibs (missing: PYTHON_LIBRARIES PYTHON_INCLUDE_DIRS)
Call Stack (most recent call first):
/usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:594 (_FPHSA_FAILURE_MESSAGE)
/usr/share/cmake-3.22/Modules/FindPythonLibs.cmake:310 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
CMakeLists.txt:5 (find_package)
El motivo en una oración: find_package(PythonLibs, ...) se abandona en CMake 3.12 y versiones posteriores, y las variables correspondientes, como PYTHON_LIBRARIES, no existen, por lo que este error se informará al usar CMake 3.12 o versiones posteriores.
Solución: use find_package (Python3 COMPONENTS Interpreter Development) en lugar de find_package (PythonLibs, ...) y find_package (PythonInterp, ...)
Detalles del motivo: FindPythonLibs se encuentra en el documento CMake3.20 y se muestra la siguiente información: Obsoleto desde la versión 3.12: use FindPython3, FindPython2 o FindPython en su lugar, y luego vaya a FindPython3 para ver cómo hacer referencia a bibliotecas de Python y archivos de encabezado
error fatal: Python.h: No existe tal archivo o directorio
Razón en una frase: target_include_directories(${TARGET} PRIVATE ${Python3_INCLUDE_DIR})
se usa Python3_INCLUDE_DIR en lugar de Python3_INCLUDE_DIRS
Solución: reemplace Python3_INCLUDE_DIR con Python3_INCLUDE_DIRS
Razón detallada: hay Python3_INCLUDE_DIR en FindPython3 : la ruta al directorio de los encabezados de Python. Se usará para calcular la variable Python3_INCLUDE_DIRS. directamente, y el resultado fue que no se pudo encontrar el archivo de encabezado de python.h