C語言不能呼叫Python

2021-06-21 10:11:14 字數 822 閱讀 6016

c語言是結構化程式設計語言,python是物件導向的語言,二者之間有條「代溝」。

python呼叫c語言,沒有問題,這叫「向下相容」。

但是,反過來則不行,不許c呼叫python,那叫「以下犯上」。

敢這樣說,是因為我有實驗的證據。

為了mt4程式設計的需要,我用lcc編譯的程式呼叫python,結果,撞上了南牆。

程式極其簡單:

#include "python.h"

#include int main()

我用的是python 2.6,因此設定鏈結庫python26.lib。一切按規矩做的。

但是,編譯時,看到以下出錯資訊:

ccallp.obj .text: undefined reference to '__imp__py_initialize'

ccallp.obj .text: undefined reference to '__imp__pyrun_******stringflags'

ccallp.obj .text: undefined reference to '__imp__py_finalize'

忙活了5、6小時之後,問題依舊。開始懷疑編譯器本身有問題。

想到python是用vc2003以後版本編譯的,早就物件導向了,只好試試vc了。

把上面的**放到vc6的檔案裡編譯、執行,一切正常。

從網上一些帖子看,在linux下也有類似問題。gcc編譯時出錯,用g++就沒問題。

由此可見,所謂「c呼叫python」,準確地說,應該是「用c++呼叫python」。

C 呼叫Python語言

是一種在 net和 mono 上實現的 python 語言 2.開啟vs,新增兩個引用,在ironpython的安裝根目錄下面選擇ironpython.dll和microsoft.scripting.dll using microsoft.scripting.hosting using ironpy...

Python呼叫C語言

python中的ctypes模組可能是python呼叫c方法中最簡單的一種。ctypes模組提供了和c語言相容的資料型別和函式來載入dll檔案,因此在呼叫時不需對原始檔做任何的修改。也正是如此奠定了這種方法的簡單性。示例如下 實現兩數求和的c 儲存為add.c sample c file to ad...

python 呼叫c語言函式

雖然python是萬能的,但是對於某些特殊功能,需要c語言才能完成。這樣,就需要用python來呼叫c的 了 具體流程 c編寫相關函式 編譯成庫 然後在python中載入這些庫,指定呼叫函式。這些函式可以char int,float,還能返回指標。以下示例 通過python呼叫c函式,返回 hell...