2013-05-02 134 views
1

目前我正在編寫一個python腳本編譯C/C++ Linux內核通過以下方式:有沒有辦法從python編譯c/C++程序?

subprocess.check_call(["make", "-j5"]) 
subprocess.check_call(["make", "-j5", "modules_install"]) 
subprocess.check_call(["make", "-j5", "install"]) 

有了這些接近命令在shell中執行。所以我想知道是否有另一種方法來編譯內核使用庫中的python構建?

+0

你是問,如果有對C/C內置基於Python編譯++?如果是這樣,答案是否定的。 – fgb 2013-05-02 01:25:58

+3

您可以直接調用C編譯器,但是必須重現Makefile中的所有邏輯。你爲什麼想這麼做? – Barmar 2013-05-02 01:26:10

+1

不,這些是直接執行的,而不是通過shell。你不重定向stout或stderr,所以當你運行程序時你會看到命令輸出。 – tdelaney 2013-05-02 01:26:31

回答

7

最終,蟒不是C/C++編譯器,因此需要編譯運出到一個外部程序(例如gcc)。那麼,有沒有辦法在Python做到這一點完全

注意的是,這裏蟒蛇不產卵任何炮彈(雖然make可能)。你可以嘗試重現什麼make做完全是用Python,(there is a version of make written in python FWIW),但說實話,這是不值得的。無論如何,你需要產生子進程 - 你也可以使用已經存在的工具和「經過驗證的」工具。

+0

你會認爲我擁有它的方法是最好的嗎? (編譯C/C++程序) – 2013-05-02 05:24:10

+0

@ juanp_1982 - 既然你已經有了makefile文件,我可能會使用它。這也是在NIX系統上構建事物的標準。當然,如果你需要支持在Windows上構建東西,那麼'make'可能不是你的程序。 – mgilson 2013-05-02 11:14:00

相關問題