国庆前夕来完成每月一篇博文的任务
这次来讲讲怎么将 c++python 结合在一起,主要是由 python 来调用 c++的函数
首先,我们需要一个东西 swig这网站看起来很旧,但其实swig是有在更新的

点击下载最新版就行了

什么是SWIG ?

SWIG是一个能将C或者C++编写的程序与其它各种高级语言如Perl, Python, Ruby, 和 Tcl进行联接的开发工具。其原理是从C/C++头文件中找到申明并利用他们生成脚本语言访问C/C++代码所必须的封装代码。SWIG具有高度可自定义的特点,它能帮助你生成适合你的应用程序的封装包。

所以,我们借助 SWIGc++代码编译成 python 能够引用的模块,就能在python里调用c++

下载解压完成之后我们还要配环境变量

这样第一步就行了
第二步,我们要先写 c++ 的函数
我们需要三个文件
hello.h------------头文件
hello.cpp---------源文件
hello.i-------------配置文件

我们在hello.h声明一个函数 Hello(char *str)
这里不能用string,python调用有问题,具体不清楚,参数为char \则可以调用*

然后在 hello.cpp实现这个函数

最后配置文件hello.i

#define SWIG_FILE_WITH_INIT这句规定了要被编译成 python的模块
#include "hello.h"给出需要包含的头文件
void Hello(char * str);hello.i这个文件的最后给出想要编译的函数
第三步,使用命令编译打包
在命令行输入
swig -python -c++ hello.i
编译,成功之后就会生成hello_wrap.cxx这个文件
第四步,我们还需要写一个名为setup.py的python文件

在第三步打包的模块还缺少动态链接库,所以我们需要这个 setup.py来生成python使用的动态链接库
在命令行中输入
python setup.py build_ext --inplace
成功后会生成_hello.cp35-win_amd64.pyd这个文件
第五步,把生成的两个文件都放到要用的python目录下,就可以在python里面调用了

大功告成 !成功的调用了c++的函数,大家可以自行发挥了