我已经成功地使用了cppyy来处理我正在处理的C++项目的自动Python绑定。我最近包括了Eigen库,但在与cppyy一起使用时遇到了问题。有没有人有做这件事的经验,或者知道我应该怎么做?在
我有以下回购结构(仅显示相关部分):
.
├── CMakeLists.txt
├── build
├── external
── eigen
├── include
── all .hpp files
├── src
── all .cpp files
├── python
── qmc.py
这里的external/eigen
是Eigen GitHub repo的副本。qmc.py
文件是cppyy魔术发生的地方,它看起来是这样的(在尝试添加Eigen之前,它可以正常工作)
构建部分可以工作,但是只要我尝试加载任何使用Eigen的头,就会得到一个错误。我已经尝试了所有我能想到的方法(包括手动一个接一个地包含所需的头文件,将整个库复制到build dir中等等),但是不管我做了什么,都会弹出相同类型的错误。有点像
In file included from
/path/to/repo/projects/include/myheader.hpp:3:10: fatal error: 'Eigen/Dense' file not found
#include <Eigen/Dense>
^~~~~~~~~~~~~
如果您能在这里改变什么,我们将不胜感激!在
编辑:要清楚地说,构建步骤工作得很好,即代码按其应有的方式编译、链接和运行。用cppyy加载库也可以。问题是cppyy还需要包括头文件。再一次,这对我自己的标题有效,但它无法找到本征标题。。。在
调用help()时,有:
因此,由于
^{pr2}$eigen_dir
是到特征值的路径,这应该是问题:不过,还有更好的方法,因为您已经在使用cmake了。参见本回购协议: https://github.com/jclay/cppyy-knearestneighbors-example。 有了它,自动加载应该可以工作了。一、 不需要在自己的代码中处理库和头。在
相关问题 更多 >
编程相关推荐