python调用dylib动态库实践

原新浪博客(http://blog.sina.com.cn/billsona)搬迁至此。

近期项目组需要开发一个MacOS下的动态库供其它产品调用,于是简单摸索了一下dylib动态库的测试方法。业界有不少公司使用的是robotframework框架,通过python加载动态库进行自动化测试。 python提供了一个强大的库ctypes,可以帮助python实现调用C或者C++写的程序。下面通过一个简单的操作来阐述这一块的使用过程。 MacOS上通过文本文件写入下面一段简单的C程序。

#includeint addition_intint, int);
int addition_intint num1, int num2){    return num1 + num2;}

将文本文件保存为add.c
通过MacOS下的命令行终端进入保存add.c文件的目录,执行如下的命令,将add.c编译成dylib动态库。

gcc -shared -o adder.dylib -fPIC add.c

执行结果如下
在这里插入图片描述
下生成了一个名为adder.dylib的动态库。
接下来我们尝试通过python下的ctypes库中的方法来加载并使用这个动态库。
将ctyoes库导入python

>> from ctypes import *

通过CDLL函数加载动态库并保存到mycalcu对象

>> mycalcu = CDLL"adder.dylib")

直接通过mycalcu对象使用动态库中的函数addition_int来执行证书加法运算。

>> mycalcu.addition_int12,15)

下面是我的具体执行结果截图
在这里插入图片描述

Published by

风君子

独自遨游何稽首 揭天掀地慰生平

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注