python中呼叫 庫

2021-06-26 20:29:52 字數 2037 閱讀 4033

2013-04-23 15:34:52

|  分類:

python核心程式設計

|  標籤:

python

makefile |

舉報 |

字型大小訂閱

1、原始檔

getstring.c  getstring.h    reverse.c  reverse.h

getstring.c

#include

char

*getstring

(char

*str

,int

num)

getstring.h

char

*getstring

(char

*str

,int

num);

reverse.c

#include

#include

"getstring.h"

char

*reverse

(char

*str

,int

num)

printf

("%s\n"

,str

);return

str;

}

reverse.h

#include

char

*reverse

(char

*str

,int

num);

2、生產靜態庫.o檔案

1、 cc -c getstring.c

生成getstring.o檔案

2、cc -c reverse.c getstring.h

生成reverse.o及getstring.h.gch

3、生成動態庫.so檔案

gcc -shared -fpci -o libreverse.so reverse.o getstring.o

生成檔案libreverse.so

4、在python中呼叫.so檔案

>>> import ctypes

>>> so = ctypes.cdll("./libreverse.so")

>>> fun = so.reverse

>>> fun("himan",5)

himan

namih

-1217157164

5、makefile

reverse.so

:getstring

.o reverse.o

gcc

-shared

-fpci

-o libreverse

.so reverse

.o getstring.o

reverse.o

:reverse

.c getstring.h

cc -

c reverse.c

getstring.o

:getstring.c

cc -

c getstring.c

clean

:rm

-rf

*.o

*.so

*.out

*.gch

reverse.so

:getstring

.o reverse.o

@$(cc)

-shared

-fpci

-o $@ $^.

phony

:clean

clean:@$

(rm)*.

o *.

so *.

out*.

gch

@是阻止命令輸出

$(rm) = rm -f

$(cc) = gcc

$@ = reverse.so所有目標

$^ = getstring.o reverse.o 所有依賴項

.phony = 偽目標

python中呼叫C 寫的動態庫

一 環境 windows xp python3.2 1.dll對應的原始檔 m.cpp include extern c declspec dllexport void print sum unsigned long ulnum 2.python源程式 coding gbk from ctypes ...

python呼叫dll動態庫

python呼叫動態庫有兩種型別,主要看dll的匯出函式的呼叫約定 stdll和 cdecl 對應的動態庫的呼叫方式為 ctypes.cdll.loadlibrary test.dll 對應 cdecl呼叫方式 ctypes.windll.loadlibrary test.dll 對應 stdll呼...

Python 呼叫 C 動態庫

呼叫c庫而不是c 庫 要注意平台位數對應 解釋型語言自上而下執行 函式類似標籤,縮排表示 塊 一行一條語句時可以不用分號 如何分配一段記憶體等 test python sample 輸入輸出 print hello end print python string input 請輸入 print 你輸...