首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用pybind11标头

无法使用pybind11标头
EN

Stack Overflow用户
提问于 2021-11-25 00:18:06
回答 1查看 24关注 0票数 0

我只希望能够用下面的代码行编译一个C++程序

代码语言:javascript
复制
#include <pybind11/pybind11.h>

我已经尝试使用cmake设置路径:

代码语言:javascript
复制
set(CMAKE_CXX_FLAGS "-march=native -O3 -I /usr/include/python3.9/ -I /home/.local/lib/python3.9/site-packages/pybind11/include/") 

没有起作用。CMAKE_CXX_FLAGS中文件的直接路径导致找不到文件。

我尝试将头路径添加到bashrc:

代码语言:javascript
复制
$HOME/.local/lib/python3.9/site-packages/pybind11/include
代码语言:javascript
复制
$ pybind11/pybind11.h
bash: pybind11/pybind11.h: No such file or directory

如果我的路径是:

$HOME/.local/lib/python3.9/site-packages/pybind11/include/pybind11

代码语言:javascript
复制
$ pybind11.h
bash: pybind11.h: command not found... 

所有这些都不会使标题可见!

当我尝试在C++中导入标题时,这个东西总是起作用。

该文件

代码语言:javascript
复制
$HOME/.local/lib/python3.9/site-packages/pybind11/include/pybind11/pybind11.h

肯定在系统里。我可以做得很好:

代码语言:javascript
复制
#include </home/.local/lib/python3.9/site-packages/pybind11/include/pybind11/pybind11.h> 

怎么一回事?

EN

回答 1

Stack Overflow用户

发布于 2021-11-26 23:01:43

我不知道如何使用已安装的pybind11global,所以我只是为我的项目创建了一个git代码库,并添加了pybind11作为一个子模块。

然后在我的cmake中,我按照文档的要求添加了add_subdirectory(extern/pybind11)。我认为这会在目录中构建源代码。

然后,我必须使用target_include_directories(sps INTERFACE extern/pybind11/include),以便目标sps中的源可以使用标头。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70104465

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档