2012-02-23 67 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

相关问题