python调用C++动态链接库
系统:win7 64位
python 版本:python3.6.5 32位
C++编译:MinGW (Minimalist GNU for Windows)。
注意这是win32 的版本,注意位数应当与已经安装的Python保持一致。
1,安装下载MinGW, Download mingw-get-setup.exe (86.5 kB)
下载地址:http://sourceforge.net/projects/mingw/files/Installer/mingw-get-inst/
安装过程:
(1)默认安装目录 C:\MinGW
(2)一定选上安装 C++ Compiler和 Objectiv-C Compiler。
下载安装需要点儿时间,期间失去连接N次。嘤嘤嘤 ,是的,端起茶水,找个电视剧看看吧。我选择的是下载并安装,选择全部下载后安装应该好一些吧。
(3)安装完毕之后,设置环境变量。
“我的电脑”图标上点击右键,选择“属性”,打开系统属性面板。
选择“高级”标签,点击“环境变量”按钮。
是的,没错,是这里,系统变量。
分别新建:
MINGW_HOME = C:/MinGW
LIBRARY_PATH = %MINGW_HOME%/lib
C_INCLUDE_PATH = %MINGW_HOME%/include
CPLUS_INCLUDE_PATH = %MINGW_HOME%/include/c++/3.4.5;%MINGW_HOME/include/c++/3.4.5/mingw32;%MINGW_HOME/include/c++/3.4.5/backward;%MINGW_HOME%/include
一共四个系统变量 。
还没完。再来。
添加path=%path%;%MINGW_HOME%/bin
至此,MinGW设置完毕。
让我们检测一下G++是否安装成功。
在cmd中输入 g++ --version,显示如下,即说明安装成功
不要以为我们要完成了哦。今天我们要说的是python调用C++,MinGW只是我们的一个工具,长征只走了一步而已。为了和以下主要内容区别开。我打一个分割线吧。还是有些小开心,毕竟下载了好久才安装完毕。Let's go!!!
_____________________________________________________________________________________________________
C++源文件 test.cpp
#include <stdio.h>
extern "C" //要加extern "C", C为大写,小写会无法识别。
{
int add(int a, int b)
{
return a + b;
}
void print_sum(unsigned long ulNum)
{
while (ulNum != 0)
{
printf("The ulNum is : %u\n", ulNum--);
}
}
}
在test.cpp 所在文件目录中进入cmd:
输入:g++ -o test.so -shared -fPIC test.cpp
在文件目录中会生成 test.so 动态链接库文件
python调用C++的py文件
# -*-encoding:utf-8 -*-
from ctypes import *
import time
if __name__=='__main__':
time_begin=time.clock()
dll=CDLL('./test.so')
print(dll.add(5,7))
dll.print_sum(10000)
t=time.clock()-time_begin
print("\nUse time: %s" %t)
将 test.so和test.py放在同一文件夹内。运行py文件检测一下吧。
还不错,一次性运行成功。
本文地址:https://blog.csdn.net/weixin_44174080/article/details/107662413