欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

如何用Python調(diào)用C代碼?

這里介紹一種簡(jiǎn)單的方式—編譯為dll或so動(dòng)態(tài)庫(kù),然后再使用ctypes模塊調(diào)用就行,下面我簡(jiǎn)單介紹一下實(shí)現(xiàn)過(guò)程,主要內(nèi)容如下:

編譯為dll

這種方式主要應(yīng)用在Windows平臺(tái)下,將C語(yǔ)言程序編譯為一個(gè)dll動(dòng)態(tài)庫(kù),然后直接使用ctypes模塊加載使用就行,測(cè)試過(guò)程如下:

1.為了更好的說(shuō)明問(wèn)題,這里我利用VS2017編譯了一個(gè)dll文件,源C代碼如下,非常簡(jiǎn)單,一個(gè)相乘函數(shù):

2.編譯完成后,我們?cè)谕?jí)目錄下新建一個(gè)py文件,直接使用ctpyes模塊加載剛才編譯好的dll文件就行,如下,非常簡(jiǎn)單:

點(diǎn)擊運(yùn)行這個(gè)程序,已經(jīng)成功調(diào)用C函數(shù),并返回執(zhí)行的結(jié)果,如下:

編譯為so

這種方式主要應(yīng)用在Linux環(huán)境下,基本過(guò)程和Windows平臺(tái)下差不多,也是先編譯為so動(dòng)態(tài)庫(kù)文件,然后再使用ctypes模塊加載使用就行,測(cè)試過(guò)程如下:

1.測(cè)試C程序如下,兩個(gè)簡(jiǎn)單的函數(shù),一個(gè)相加一個(gè)相乘,接著使用gcc命令將這個(gè)C文件編譯為so文件,編譯命令“gcc-shared-Wl,-soname,test-otest.so-fPICtest.c”:

2.編譯完成后,在同級(jí)目錄下也新建一個(gè)py文件,也直接使用ctypes模塊加載so文件使用就行,代碼幾乎不變,如下:

直接運(yùn)行這個(gè)程序,效果如下,已經(jīng)成功調(diào)用C函數(shù):

至此,我們完成了利用Python調(diào)用C語(yǔ)言程序。總的來(lái)說(shuō),整個(gè)過(guò)程非常簡(jiǎn)單,只要你熟悉一下上面的步驟,很快就能掌握的,網(wǎng)上也有相關(guān)教程和資料可供參考,非常詳細(xì)也非常豐富,希望以上分享的內(nèi)容能對(duì)你有所幫助吧,也歡迎大家評(píng)論、留言。