编译c++为python可导入的模块¶
project(test)
cmake_minimum_required(VERSION 3.16)
# 查看 python3.8 库目录
find_package(PythonLibs 3.8 REQUIRED)
# ${Python_LIBRARIES_INCLUDE_DIRS} 是 find_package 找到的包含目录的变量
set(PYTHON_INCLUDE_DIR ${Python_LIBRARIES_INCLUDE_DIRS})
# 查找 pybind11 库目录,注意版本
find_package(pybind11 REQUIRED)
# 从指定的目录中查看opencv
# find_package(OpenCV REQUIRED PATHS ${OpenCV_DIR} NO_DEFAULT_PATH)
# 新建一个 Python 模块
# pybind11_add_module 是 pybind11 库中的一个 CMake 函数,用于简化 Python 扩展模块的构建过程。它的主要作用是将 C++ 代码编译成可以在 Python 中导入的模块。
pybind11_add_module(testp 1.cpp 2.cpp)
target_include_directories(testp PRIVATE ${my_inc})
target_link_libraries(testp PRIVATE ${my_lib}
${PYTHON_INCLUDE_DIR}
${pybind11_INCLUDE_DIRS})