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文件检测一下吧。

还不错,一次性运行成功。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值