main.cpp 未检测到添加到 CMakeLists.txt 的子目录

added subdirectory to CMakeLists.txt isn't detected by main.cpp

我正在使用 Pybind11 创建一个 python 绑定到 c++ 代码。 我的项目架构如下:

-- 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),但它不起作用,因为我不知道要在 [=19= 中放入什么],我收到以下错误:

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.txtlib/myCPPCode/CMakeLists.txt

提前致谢!

add_subdirectory 只是告诉 cmake 在作为参数给出的目录中找到一个 CMakeLists.txt。

您需要将 add_subdirectory(lib/myCPPCode) 更改为 include_directories(lib/myCPPCode),它应该会更好用。