Python调用C语言开发的共享库方法实例
在helloworld工程中,编写了一个简单的两个数值相加的程序,编译成为共享库后,如何使用python对其进行调用呢?
使用ll命令列出当前目录下的共享库,其中共享库名为libhelloworld.so.0.0.0
ufo@ufo:~/helloworld/.libs$ll 总用量32 drwxr-xr-x2ufoufo4096 1月2914:54./ drwxr-xr-x6ufoufo4096 1月2916:08../ -rw-r--r--1ufoufo3816 1月2914:54helloworld.o -rw-r--r--1ufoufo3956 1月2914:54libhelloworld.a lrwxrwxrwx1ufoufo 19 1月2914:54libhelloworld.la->../libhelloworld.la -rw-r--r--1ufoufo 983 1月2914:54libhelloworld.lai lrwxrwxrwx1ufoufo 22 1月2914:54libhelloworld.so->libhelloworld.so.0.0.0* lrwxrwxrwx1ufoufo 22 1月2914:54libhelloworld.so.0->libhelloworld.so.0.0.0* -rwxr-xr-x1ufoufo9038 1月2914:54libhelloworld.so.0.0.0*
进入python的命令行模式进行C语言实现的两个数值相加的程序的调用;
ufo@ufo:~/helloworld/.libs$python Python2.7.4(default,Sep262013,03:20:56) [GCC4.7.3]onlinux2 Type"help","copyright","credits"or"license"formoreinformation.
载入ctypes类(此类即是调用C语言动态库的方法)
>>>importctypes
打开当前目录的动态库
>>>lib=ctypes.cdll.LoadLibrary("./libhelloworld.so.0.0.0")
调用动态库中的接口
>>>lib.add(5,7) 12
两个参数的相加的函数如下:
ufo@ufo:~/helloworld$cathelloworld.c #include<stdio.h> #include<stdlib.h>
intadd(inta,intb) { intc=a+b; returnc; }
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短