Python, C/C++, SWIG
Published
24 July 2014
Contents
让 Python 和 C++ 相互调用,方法主要有以下几种:
通过 extern 生成动态链接库
via http://www.oschina.net/question/234345_48628
最经典的方法,通过在头文件里加入 extern "C"
来定义动态链接符号,通过 ctypes.CDLL
来连接,优点是即插即用,缺点是只能以纯C的方式调用,而且只能传输基础类型。
使用 Python API
via https://docs.python.org/2/extending/extending.html
最科学的方法,通过 python 提供的 API 来编写,编译出的文件可以直接 import,非常干净,而且不光可以 python 调用 c++,同样可以用 c++ 调用 python
SWIG
发现 SWIG 以后真是相见恨晚,SWIG 几乎可以把 C++ 包装给所有语言用,而且不需要在原来基础上增加或者修改代码。
基本上按着官方教程来一遍就知道怎么回事了,有一点一直被坑了很久,那就是编译出来的 .dll
得把后缀改成 .pyd
才行,python3 import 的时候是不会找 .dll
后缀的…
blog comments powered by Disqus