国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python調用C語言開發的共享庫方法實例

2020-02-23 00:23:16
字體:
來源:轉載
供稿:網友

在helloworld工程中,編寫了一個簡單的兩個數值相加的程序,編譯成為共享庫后,如何使用python對其進行調用呢?

使用ll命令列出當前目錄下的共享庫,其中共享庫名為libhelloworld.so.0.0.0
代碼如下:
ufo@ufo:~/helloworld/.libs$ ll
總用量 32
drwxr-xr-x 2 ufo ufo 4096  1月 29 14:54 ./
drwxr-xr-x 6 ufo ufo 4096  1月 29 16:08 ../
-rw-r--r-- 1 ufo ufo 3816  1月 29 14:54 helloworld.o
-rw-r--r-- 1 ufo ufo 3956  1月 29 14:54 libhelloworld.a
lrwxrwxrwx 1 ufo ufo   19  1月 29 14:54 libhelloworld.la -> ../libhelloworld.la
-rw-r--r-- 1 ufo ufo  983  1月 29 14:54 libhelloworld.lai
lrwxrwxrwx 1 ufo ufo   22  1月 29 14:54 libhelloworld.so -> libhelloworld.so.0.0.0*
lrwxrwxrwx 1 ufo ufo   22  1月 29 14:54 libhelloworld.so.0 -> libhelloworld.so.0.0.0*
-rwxr-xr-x 1 ufo ufo 9038  1月 29 14:54 libhelloworld.so.0.0.0*

進入python的命令行模式進行C語言實現的兩個數值相加的程序的調用;
代碼如下:
ufo@ufo:~/helloworld/.libs$ python
Python 2.7.4 (default, Sep 26 2013, 03:20:56)
[GCC 4.7.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.

載入ctypes類(此類即是調用C語言動態庫的方法)
代碼如下:
>>> import ctypes

打開當前目錄的動態庫
代碼如下:
>>> lib=ctypes.cdll.LoadLibrary("./libhelloworld.so.0.0.0")

調用動態庫中的接口
代碼如下:
>>> lib.add(5,7)
12

兩個參數的相加的函數如下:
代碼如下:
ufo@ufo:~/helloworld$ cat helloworld.c
#include <stdio.h>
#include <stdlib.h>

int add(int a, int b)
{
    int c = a + b;
    return c;
}

編譯動態庫的命令行:
代碼如下:
gcc -shared -fPIC -DPIC helloworld.c -o libhelloworld.so.0.0.0

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 丰顺县| 抚宁县| 林芝县| 灌南县| 望谟县| 明溪县| 当雄县| 高台县| 林州市| 仙居县| 镇康县| 唐山市| 乃东县| 南汇区| 襄城县| 汉阴县| 新干县| 扶风县| 永靖县| 和政县| 卓尼县| 宜丰县| 敦煌市| 白城市| 陇南市| 休宁县| 桐城市| 寿宁县| 碌曲县| 泾阳县| 蒲江县| 民勤县| 镇沅| 石家庄市| 洪泽县| 吴旗县| 忻州市| 白朗县| 深泽县| 怀宁县| 辉南县|