CMake之问题汇总

Could NOT find PythonLibs

报错:

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)

一句话原因:find_package(PythonLibs, …)这种方式在CMake 3.12版本及之后废弃了,相应的诸如PYTHON_LIBRARIES这些变量也都不存在了,所以使用CMake 3.12以上版本会报该错误。
解决办法:用find_package(Python3 COMPONENTS Interpreter Development)替代find_package(PythonLibs, …)和find_package(PythonInterp, …)
原因详述:CMake3.20文档中找到FindPythonLibs,显示如下信息:Deprecated since version 3.12: Use FindPython3, FindPython2 or FindPython instead,再到FindPython3查看怎样引用python库及头文件

fatal error: Python.h: No such file or directory

一句话原因:target_include_directories(${TARGET} PRIVATE ${Python3_INCLUDE_DIR}) 中使用了Python3_INCLUDE_DIR而不是Python3_INCLUDE_DIRS
解决办法:将Python3_INCLUDE_DIR替换为Python3_INCLUDE_DIRS即可
原因详述:在FindPython3中有Python3_INCLUDE_DIR:The path to the directory of the Python headers. It will be used to compute the variable Python3_INCLUDE_DIRS.就直接拿来用了,结果报找不到python.h的头文件

猜你喜欢

转载自blog.csdn.net/u010378559/article/details/130644540