cod*_*000 9 c++ python pybind11
我试图使用pybind11包装一个c ++库,所以我可以在Python 3.x中使用它.
我尝试使用swig包装代码,但我遇到了一个问题,SWIG会生成cxx文件,但不会读取我引用的头文件,所以有人建议我使用pybind11因为它比swig更好(这是意见我知道),但我无法找到有关如何引用/构建项目的资源.
我的环境是:
当我为Swig创建我的界面文件时,我可以做一些简单的事情:
```
%module filegdbapi
%{
#include "FileGDBAPI.h"
%}
%include "FileGDBAPI.h"
Run Code Online (Sandbox Code Playgroud)
```
然后在swig构建中,我可以引用-I.h文件的位置.
我如何在pybind11中做这样的事情?这么简单吗?
当你有.cpp文件时,pybind11的文档总是显示构建包装器.我可以用一种方法来使用pybind11,我可以用swig构建一个包装器吗?如果是这样,你如何设置文件?
有人能指出我只是从现有的c ++代码生成python包装器的项目吗?
谢谢
尽管有相同的目的,SWIG和Pybind11是不同的工具。
顾名思义,SWIG(简化包装程序和接口生成器)是一种生成器工具,它使用以特殊语言编写的定义为现有C ++代码创建Python绑定。
另一方面,Pybind11是仅标头的C ++库,它包装了原始的Python-C API(这是旧式的C,具有很陡的学习曲线),并允许在现代C ++中编写Python绑定。但是,您可以使用pybind11::命名空间提供的任何C ++实体(函数,类,模板等)手动编写自己的绑定。