編譯C/C++為dll供Python呼叫
阿新 • • 發佈:2021-01-29
首先寫一個簡單的lzb_add.c檔案如下:
#include <stdio.h>
int add_int(int, int);
float add_float(float, float);
int add_int(int num1, int num2) {
return num1 + num2;
}
float add_float(float num1, float num2) {
return num1 + num2;
}
然後將lzb_add.c編譯為lzb_add.dll檔案,方法如下:
首先要有gcc,然後命令列cd到c檔案目錄,執行下面命令,會在當前目錄生成一個lzb_add.dll檔案
gcc -shared -o lzb_add.dll .\lzb_add.c
有了這個dll檔案,就可以給Python使用了
from ctypes import * adder = CDLL('./lzb_add.dll') res_int = adder.add_int(4,5) print("Sum of 4 and 5 = " + str(res_int)) a = c_float(5.5) b = c_float(4.1) add_float = adder.add_float add_float.restype = c_float print "Sum of 5.5 and 4.1 = ", str(add_float(a, b))
輸出:
Sum of 4 and 5 = 9
Sum of 5.5 and 4.1 = 9.600000381469727