是否可以使用python编译c代码?

我想构建一个python程序,它将.c文件的路径作为输入,然后编译它。

如果编译成功,程序将输出OK到屏幕,否则输出BAD。

我一直试图谷歌,但找不到任何东西。 我一直在尝试使用编译程序的参数在python中运行cmd,但它不起作用。

澄清 – 我已经在我的机器中有一个非常具体的编译器,我想运行它。 我不希望python充当编译器。 只需获取代码,在其上运行我的编译器,然后查看答案是什么。

  • 它应该在使用python 2.4的Linux服务器上运行。

谢谢

当然,为什么不呢? 当然,您需要安装GCC(或llvm),以便您可以编译。 您可以使用os.system或任何其他方式来调用外部程序。

当然,你可能更喜欢看SCons这样的东西,它已经存在以解决这个问题。

另外,为了回答实际问的问题,没有什么可以阻止你在python中编写编译器/汇编器/链接器,它们只是像其他任何程序一样的程序。 虽然性能可能不会很好。

步骤1.获得PLY。 Python Lex和Yacc。 http://www.dabeaz.com/ply/

步骤2.找到C的Yacc / Lex配置.http ://www.lysator.liu.se/c/ANSI-C-grammar-y.html

步骤3.调整PLY以使用您找到的C语言规则。

第4步。运行。 你正在“编译”C代码 – 检查语法。

如果我清楚地理解你,你只想用python中的一些参数运行编译器?

在这种情况下,您可以只使用os.system。 http://docs.python.org/library/os.html#os.system

或者更好的方法是模块“子过程”。 http://docs.python.org/library/subprocess.html#module-subprocess