« »

Python调用Linux下的动态库(so)

1、linuxany.c代码如下:

  1. #include "stdio.h"
  2. void display(char* msg){
  3.     printf("%s\n",msg);
  4. }
  5.  
  6. int add(int a,int b){
  7.     return a+b;
  8. }

2、编译c代码,最后生成Python可执行的.so文件

(1)gcc -c linuxany.c,将生成一个linuxany.o文件
(2)gcc -shared linuxany.c -o linuxany.so,将生成一个linuxany.so文件

3、在Python中调用

  1. #!/usr/bin/python
  2.  
  3. from ctypes import *
  4. import os 
  5. //参数为生成的.so文件所在的绝对路径
  6. libtest = cdll.LoadLibrary(os.getcwd() + '/linuxany.so') 
  7. //直接用方法名进行调用
  8. print 
  9. libtest.display('Hello,I am linuxany.com') 
  10. print libtest.add(2,2010)

4、运行结果

Hello,I am linuxany.com
2012

您还可能感兴趣的内容

日志信息 »

该日志于2010-05-02 20:29由 admin 发表在Python分类下, 你可以发表评论。除了可以将这个日志以保留源地址及作者的情况下引用到你的网站或博客,还可以通过RSS 2.0订阅这个日志的所有评论。

4条评论

  1. 发表论文 说道:

    博客不错,路过!

  2. B2b Trade 说道:

    This is a good idea! hope to better!A great man is always willing to be little.

  3. goandsee 说道:

    这个例子,在ubuntu 9.04下运行结果为:
    Hello,I am linuxany.com
    24
    2012

    其中,第2行的24应该是“Hello,I am linuxany.com”的长度 +1(\n)

    为了得到楼主的输出,python代码中要去掉print,改为如下:
    libtest.display(‘Hello,I am linuxany.com’)
    print libtest.add(2,2010)

  4. admin 说道:

    感谢楼上兄弟指出问题,已修正

发表评论 »


返回顶部