2013-05-02 140 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

相关问题