2012-02-23 66 views
3

我想要構建一個python程序,它將獲得.c文件的路徑作爲輸入,然後編譯它。是否有可能使用python編譯c代碼?

如果編譯成功,程序將輸出OK至屏幕,否則返回BAD。

我一直試圖谷歌它,但無法找到任何東西。我一直在試圖在編譯程序的參數的Python中運行CMD,但它沒有奏效。

爲了清楚起見 - 我已經在我的機器上準備了一個非常具體的編譯器,我想運行它。我不希望Python作爲編譯器。只要得到一個代碼,運行我的編譯器,看看答案是什麼。

  • 它應該與Python 2.4的Linux服務器上工作。

感謝

+1

您可能會看到distutils,但所有將要做的是提供一個python層給gcc或類似的編譯器,最後python將不會進行編譯,並且會有依賴關係。 – jondavidjohn 2012-02-23 20:26:41

+0

有一個很好的Pycon談話[使用Python調試C和C++代碼(使用gdb)](http://blip.tv/pycon-us-videos-2009-2010-2011/pycon-2011-using-python- to-debug-c-and-c-code-using-gdb-4895525)可能會對你有所幫助。 – RanRag 2012-02-23 20:33:04

+0

如果你想運行一個編譯器,你只需要用Python運行一個子進程。在這種情況下,這個問題是每一個試圖在Python下運行子進程的問題的完全重複。關閉它。以下是所有提供大致相同答案的相關問題。 http://stackoverflow.com/search?q=python+subprocess。他們都回答了「澄清」的問題。 – 2012-02-24 10:50:21

回答

8

當然,爲什麼不?當然,你需要安裝GCC(或者llvm),所以你需要編譯一些東西。您可以使用os.system或其他任何方式來調用外部程序。

當然,你可能更喜歡看像SCons,這已經存在解決這個問題。

另外,爲了回答實際提出的問題,沒有什麼會阻止你在Python中編寫編譯器/彙編器/鏈接器,它們只是像其他任何程序一樣。性能可能不會很好,但。

+0

謝謝。 os.system可能是我需要的 – RanZilber 2012-02-23 22:45:24

+1

Scons如何在這方面提供幫助。你能否詳細說明一下? – AdityaPande 2014-03-25 15:10:07

相關問題