如何解决main.cpp未检测到添加到CMakeLists.txt的子目录
我正在使用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)
,这样应该会更好。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。