Python呼叫C C 生成的動態鏈結庫檔案

2021-09-26 14:44:14 字數 1231 閱讀 1419

1.python呼叫c語言生成的dll/so檔案

首先在c語言需要乙個源**檔案和乙個標頭檔案,標頭檔案是必須的,否則不能被呼叫,這裡以乙個add函式來作為例子,c源

檔案**如下:

#include

"add.h"

intadd

(int a,

int b)

在標頭檔案中書寫宣告:

intadd

(int

,int

);

windows環境下,可使用cygwin中的gcc編譯器/或vs中的msvc編譯器進行編譯,其中gcc編譯命令如下:

gcc -c add.c add.h -fpic -shared -o add.dll
from ctypes import

*dll=cdll(

"add.dll"

)print

(dll.add(1,

105)

)

注意:python直譯器和c編譯器最好是同乙個字長的,不同字長的編譯器和直譯器之間可能發生問題。

2.python呼叫c++語言生成的dll/so檔案

pp

#include

"add.hpp"

intadd

(int l,

int r)

標頭檔案這時需要採用c語言的介面宣告(可以在c介面函式中呼叫c++函式),標頭檔案如下:

pp

extern

"c"

編譯時可以採用g++或gcc都可以,編譯指令如下:

gcc -c add.cpp add.hpp -fpic -shared -o add.dll
或者

g++ -c add.cpp add.hpp -fpic -shared -o add.dll
python直譯器的呼叫程式不變,仍可以使用:

from ctypes import

*dll=cdll(

"add.dll"

)print

(dll.add(1,

105)

)

對動態鏈結庫檔案進行呼叫。

Python生成動態變數和呼叫

做習題的時候需要生成多個空字典,所以找到了利用迴圈建立按序列命名字典的方法。直接執行表示式中的語句 for i in range 3 exec d dict format i exec print d format i 不能使用eval來替代exec,因為eval後要求的是表示式,如上exec後跟的...

python 呼叫 C C 程式設計

p1 首先,先用c寫乙個簡單的函式 show.c include void showstring 這個函式是乙個最簡單的helloworld函式,幾乎所有程式語言教材都會以她作為第乙個例子 跑題了。我們需要做的是在乙個python指令碼中呼叫這個函式 show.py usr bin env pyth...

python 呼叫 C C 詳解

接下來將簡單介紹python如何呼叫c和c 包括呼叫整型,陣列等情況。c函式返回整型int c test.c include include int func int a,int b 編譯成so包 gcc o testpycll 64.so shared fpic test.cpython impo...