c++ - pybind11 与 CMakeLists 仅用于标头库?
问题描述
CMake的新手,但基本上我有以下结构
MYPROJECT
|--executable.cpp
|--CMakeLists.txt
|
|--bindings
| |- file1.cpp
| |- file2.cpp
|
|--include
| |---- externals
| | |- pybind11
| | |- Eigen
|
|---- MYPROJECTHEADERS
|- file1.h
|- file2.h
其中:file1.h
并且file2.h
包括 Eigen 标头。目前(我能想到的)是我的根 CMakeLists.txt
cmake_minimum_required(VERSION 3.20)
project("MYPROJECT")
set(CMAKE_CXX_STANDARD 17)
set(MODULE_SOURCE "${PROJECT_SOURCE_DIR}/bindings")
set(EXTERNALS "${PROJECT_SOURCE_DIR}/include")
add_subdirectory(${EXTERNALS}/external/pybind11)
pybind11_add_module (file1 ${MODULE_SOURCE}/file1.cpp)
target_include_directories (file1 PUBLIC ${MODULE_SOURCE})
pybind11_add_module (file2 ${MODULE_SOURCE}/file2.cpp)
target_include_directories (file2 PUBLIC ${MODULE_SOURCE})
(使用 VSCode)
在我的file1.cpp
it 中,我在线cannot open source file "Eigen/Core" dependency
上#include "pybind11/eigen.h"
说它也说,cannot open source file "file1.h" dependency
但是在我的 c_cpp_properties.json 中,我指定了 Eigen、pybind11 和 MYPROJECTHEADERS 的包含路径,我的executable.cpp
(不使用 pybind)工作得很好。在这一点上,我完全迷失了。
注意:该文件夹MYPROJECT/include/externals/Eigen
仅包含Eigen/Eigen
文件夹(填充有标题),因此没有 CMakeLists.txt 文件MYPROJECT/include/externals/Eigen
解决方案
推荐阅读
- c++ - 有什么方法可以在 DelphiInterface 上实现 dynamic_cast 以获得底层对象类?
- opencv - 我怎样才能检测到图像上的那种线?
- php - woocommerce_after_add_to_cart_button 不适用于 Themosis
- javascript - 使用 String.includes() 在字符串中搜索确切的字符串
- python - 可以在 Python 2 和 Python 3 微服务之间共享 Google App Engine 数据存储吗?
- c# - Cassandra.Data.Linq.CqlExpressionVisitor.FillUpdateProjection 没有为成员结果定义映射
- javascript - 使用javascript替换字符串
- python - 看不懂pymongo中的GEOHAYSTACK索引,哪个索引最快?
- html-select - 如何避免选项标签中的连字?
- python - 用pyinstaller编译exe后调用新模块的方法?