如何在python中呼叫C語言中的函式

2021-08-15 20:31:17 字數 769 閱讀 9772

今天在工作中遇到乙個問題;

我需要在python指令碼中呼叫乙個cpp語言函式,這個cpp語言函式屬於外部模組的函式。

具體環境:

os: linux fedora 26

python: python2.7

接下來我要開始調查這個問題,調查清楚之後,我將會更新到這裡來:

[2018-03-01 update]

c語言函式接收的輸入是乙個結構體,這樣的話,就需要python將資料以dictionary的形式傳進來。

這樣的話,昨天調查的函式pyarg_p

arsetuple已經不能滿足需要了。這時可以將接收輸入的函式變更為

pyarg_parsetupleandkeywords()。

同時,還有乙個問題,在編譯時有如下乙個編譯錯誤:fatal error: python.h: no such file or directory

該問題的解決方法:安裝python-dev package或者python34-dev package。

[2018-02-28 update]

在python中呼叫c語言的api,需要有如下三部分內容;

1. 匯出函式:

所謂匯出函式,就是適配函式,在此函式中有如下幾件事情需要完成

2. 方法列表

列出所有可以被python直譯器使用的函式列表,包括四項內容:

3.初始化函式

每個python擴充套件模組,都要有初始化函式,以便python直譯器能夠對其正確的初始化

如何在C 中呼叫C程式

c 和c是兩種完全不同的編譯鏈結處理方式,如果直接在c 裡面呼叫c函式,會找不到函式體,報鏈結錯誤。要解決這個問題,就要在 c 檔案裡面顯示宣告一下哪些函式是c寫的,要用c的方式來處理。1.引用標頭檔案前需要加上 extern c 如果引用多個,那麼就如下所示 extern c 然後在呼叫這些函式之...

如何在C 中呼叫C程式?

c 和c是兩種完全不同的編譯鏈結處理方式,如果直接在c 裡面呼叫c函式,會找不到函式體,報鏈結錯誤。要解決這個問題,就要在 c 檔案裡面顯示宣告一下哪些函式是c寫的,要用c的方式來處理。1.引用標頭檔案前需要加上 extern c 如果引用多個,那麼就如下所示 extern c 然後在呼叫這些函式之...

如何在C 中呼叫C程式?

c 和c是兩種完全不同的編譯鏈結處理方式,如果直接在c 裡面呼叫c函式,會找不到函式體,報鏈結錯誤。要解決這個問題,就要在 c 檔案裡面顯示宣告一下哪些函式是c寫的,要用c的方式來處理。1.引用標頭檔案前需要加上 extern c 如果引用多個,那麼就如下所示 extern c 然後在呼叫這些函式之...