如何在CMakeLists.txt中配置Python相关的g++编译链接选项?
将g++的Python头文件与链接库配置迁移到CMakeLists.txt
我有一个引用了Python.h的C文件,此前通过以下g命令完成编译:
g++ {fileName}.cpp -I/usr/include/python3.6m -lpython3.6m
现在需要把命令中的-I/usr/include/python3.6m(头文件路径)和-lpython3.6m(链接库)这两个配置迁移到CMakeLists.txt中。
初始错误的CMake配置
最初的CMakeLists.txt写法存在两处问题:
cmake_minimum_required(VERSION 3.10) add_executable (program test.cpp) target_include_directories(program PUBLIC ${CMAKE_SOURCE_DIR}/python3.6m) target_compile_options(program PUBLIC "-lpython3.6m") message(${CMAKE_SOURCE_DIR}/python3.6m)
修正后的正确配置
经调整后,正确的CMake配置如下:
cmake_minimum_required(VERSION 3.10) add_executable(program test.cpp) target_include_directories(program PUBLIC /usr/include/python3.6m) # 指定Python头文件的系统路径 target_link_libraries(program PUBLIC "-lpython3.6m") message(${CMAKE_SOURCE_DIR}/python3.6m)
关键修正点:
- 头文件路径:把错误的
${CMAKE_SOURCE_DIR}/python3.6m替换为实际的系统头文件路径/usr/include/python3.6m,确保CMake能找到Python.h - 链接库配置:将原本放在
target_compile_options里的链接库选项,移到专门用于链接设置的target_link_libraries指令中,这是CMake管理链接依赖的正确方式
内容的提问来源于stack exchange,提问作者JaeHyeok
相关产品推荐
相关产品推荐

