2013-04-23 15:34:52
| 分類:
python核心程式設計
| 標籤:
python
makefile |
舉報 |
字型大小訂閱
1、原始檔
getstring.c getstring.h reverse.c reverse.h
getstring.c
#includegetstring.hchar
*getstring
(char
*str
,int
num)
charreverse.c*getstring
(char
*str
,int
num);
#includereverse.h#include
"getstring.h"
char
*reverse
(char
*str
,int
num)
printf
("%s\n"
,str
);return
str;
}
#include2、生產靜態庫.o檔案char
*reverse
(char
*str
,int
num);
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 你輸...