无法使用pybind11标头



我只想能够用以下行编译C++程序

#include <pybind11/pybind11.h>

我试着用cmake:设置路径

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:

$HOME/.local/lib/python3.9/site-packages/pybind11/include
$ pybind11/pybind11.h
bash: pybind11/pybind11.h: No such file or directory

如果我的路径:

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

$ pybind11.h
bash: pybind11.h: command not found... 

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

当我尝试在C++中导入标头时,这些东西总是有效的。

文件

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

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

#include </home/.local/lib/python3.9/site-packages/pybind11/include/pybind11/pybind11.h> 

发生了什么事?

我不知道如何使用安装的pybind11[global],所以我只是为我的项目创建了一个git repo,并添加了pybind11作为子模块。

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

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

相关内容

  • 没有找到相关文章

最新更新