python转c++代码_有哪些⼯具可以将python代码转成C++?如果要在Python中包装现有的C或C ++功能,有很多选择,这⾥只记录最值得推荐的⽅式,SWIG被Subversion, wxPython, Xapian等项⽬使⽤。值得⼀提的是,Google也使⽤SWIG。
⽤SWIG包装Python代码
SWIG本质上是⼀种宏语⾔,可以植⼊C代码,并且可以为你选择的语⾔(python)⽣成包装器代码。
SWIG包装“ hello”程序需要三件事。
第⼀步,⽣成⽂件python代码转换
swig -python -c++ -o _ swigdemo.i
python setup.py build_ext --inplace⾸先,运⾏SWIG⽣成C代码扩展;
然后,setup.py build 以实际构建它。
第⼆步,构建SWIG包装⽂件“ swigdemo.i”
在这种情况下,它可能⾮常简单:
%module swigdemo
%{
#include
#include "hello.h"
%}
%include "hello.h"%module指定要从该包装⽂件⽣成的模块的名称;
%{%}之间的代码按原样放置在C输出⽂件中;在这种情况下,它仅包含两个头⽂件。
最后⼀⾏%include只是说“针对此头⽂件中的声明构建接⼝”。
第三步,构建setup.py⽂件
import setup, Extension
extension_mod = Extension("_swigdemo", ["_", "hello.c"])
setup(name = "swigdemo", ext_modules=[extension_mod])
现在,当我们运⾏“ make”时,swig将⽣成_⽂件以及“ swigdemo.py”⽂件。然后,setup.py将两个C⽂件⼀起编译到⼀个共享库’_swigdemo'中,该库由swigdemo.py导⼊;那么⽤户就可以“导⼊swigdemo”并直接访问包装模块中的所有内容。
SWIG可以直接接受 .h 头⽂件做为接⼝描述⽂件。在有了接⼝描述⽂件后,就可以利⽤ swig 命令⽣成包装代码了,然后将包装代码编译链接成可被其他语⾔调⽤的库。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。