0

我正在使用 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.txtand lib/myCPPCode/CMakeLists.txt

先感谢您!

4

1 回答 1

1

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

你需要改变你的add_subdirectory(lib/myCPPCode)include_directories(lib/myCPPCode)它应该工作得更好。

于 2020-10-04T11:52:02.197 回答