linux 下Python呼叫C模組

2021-07-09 03:54:03 字數 755 閱讀 6112

在c呼叫python模組時需要初始化python直譯器,匯入模組等,但python呼叫c模組卻比較簡單,下面還是以helloworld.c 和 main.py 做一說明:

(1)編寫c**,helloworld.c**很簡單,只是輸出「hello world!」:

(2)將編寫的c**編譯成動態鏈結庫的形式,具體命令:

此時在當前目錄下就生成了libhello.so 的動態鏈結庫:

(3)在main.py中匯入動態鏈結庫,並呼叫c函式

這裡的ctypes是python的乙個外部庫,提供和c語言相容的資料型別,以方便的呼叫c編譯的靜態庫和動態庫中的函式, 在此可以很肯定的說,ctypes中可定對c的資料型別進行了轉換,使用時只需import ctypes ,然後匯入動態庫即可。

(4)在終端下輸入python main.py, 執行結果:

列印出helloworld.c中的內容, 說明python呼叫c模組成功!

Linux 下Python呼叫C 編寫的動態庫

在工程中用到使用python呼叫c 編寫的動態庫,結果報如下錯誤 oserror extract str.so undefined symbol znst8ios base4initd1ev python呼叫函式 1 coding utf 8 2from ctypes import 34 libpc...

Linux下C呼叫C 介面詳解

c 做久了,經常用c 的方式去思考問題,有時候就突然發現自己不太會寫c程式了。寫程式的時候,難免會用到第三方外掛程式或者是庫,而這些外掛程式或者庫很多時候都不能完全滿足我們的需求,遇到這種情況,如果全是c 那好辦,寫個介面卡就ok了,關於介面卡模式參考我的部落格 c adaptor 設計模式 如果要...

linux下Lua呼叫C函式

這篇文章 的基礎上編寫的,由於原文章採用的是lua 5.2以下的版本,但是lua 5.2的版本進行了很大的改動,導致之前的很多函式不能再使用。本文就解決了採用lua 5.3.0中的api函式之後,原文章中 存在的一些問題。這裡只講原文章中提到的第二種方法c函式庫成為lua的模組,以實現lua呼叫c函...