簡體   English   中英

使用Cython將Python編譯為C語言

[英]Compiling Python to C using Cython

我正在嘗試使用cythonpython源代碼foo.py編譯為C.

foo.py

print "Hello World"

我正在運行的命令是cython foo.py

問題是當使用gcc編譯foo.c時,我收到錯誤:

undefined reference to 'main'

當將代碼從python轉換為c(使用Cython)時,它將其轉換為可以編譯為共享對象的c代碼。 為了使其可執行,你應該在cython轉換命令中添加“--embed”。 這個標志添加了你需要的'main'功能,所以你可以將c代碼編譯成可執行文件。 請注意,您需要python .so運行時庫才能運行exec。

閱讀Cython文檔。 這也將(希望)教你Cython是什么,不是什么。 Cython用於創建python擴展(不是通用的Python-to-C編譯器),它們是共享對象/ dll。 動態加載的庫沒有像獨立程序這樣的main函數,但編譯器假設它們最終鏈接可執行文件。 你必須通過標志告訴他們( -shared methinks,但再次參考Cython文檔) - 或者甚至更好,不要自己編譯,為此使用setup.py (再次閱讀Cython文檔)。

通常的方法是使用distutils來編譯cython生成的文件。 這還以便攜方式為您提供了所需的所有包含目錄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM