问题描述
我正在使用Pybind11创建与c ++代码的python绑定。 我的项目架构如下:
-- MyProject
| -- lib
| -- pybind11
| -- CMakeLists.txt
| -- include
| -- myCPPCode
| -- CMakeLists.txt
| -- MyCodeDeFinitions.h
| -- MyCode.cpp
| -- src
| -- MyProject
| -- MyModule.cpp
| -- CMakeLists.txt
| -- setup.py
我想做的是将#include <myCPPCode/MyCodeDeFinitions.h>
包含在MyModule.cpp
中。
为此,我在全局CMakeLists.txt
中添加了以下命令:add_subdirectory(lib/myCPPCode)
,但是它不起作用,因为我不知道要在lib/myCPPCode/CMakeLists.txt
中添加什么,并且出现以下错误:
path/MyProject/src/MyProject/MyModule.cpp:2:10: Fatal error: myCPPCode/MyCodeDeFinitions.h: No such file or directory
2 | #include <myCPPCode/MyCodeDeFinitions.h>
| ^~~~~~~~~~~~~~~~~~~~~~~~~~
lib/myCPPCode/CMakeLists.txt
的内容如下:
cmake_minimum_required(VERSION 3.13)
project(myCPPCode)
add_library(myCPPCode MyCode.cpp)
我应该如何配置CMakeLists.txt
和lib/myCPPCode/CMakeLists.txt
?
提前谢谢!
解决方法
add_subdirectory
只是告诉cmake在给定参数的目录中找到CMakeLists.txt。
您需要将add_subdirectory(lib/myCPPCode)
更改为include_directories(lib/myCPPCode)
,这样应该会更好。