今天在工作中遇到乙個問題;
我需要在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 然後在呼叫這些函式之...