按源代码

时间:2015-05-15 11:49:36

标签: c

我正在编写一个获得C文件路径的代码,我想通过程序代码编译该文件。这意味着编译不会出现在命令行中:

gcc -o a.out file.c

有办法吗?

2 个答案:

答案 0 :(得分:1)

如果您尝试以编程方式编译C源文件,可以尝试:

execlp("gcc", "gcc", "file.c", "-o", "a.out", NULL);

execlp具有搜索存储在您的环境$PATH中的目录以查找所需可执行文件的优势。如果调用失败,则返回-1。不要忘记#include <unistd.h>这样做。

你也可以通过另一个简单的电话来逃避:

system("gcc file.c -o a.out");

这需要#include <stdlib.h>,并会通过调用gcc执行/bin/sh

答案 1 :(得分:0)

我更喜欢popen

您可以轻松地在文件指针中获取命令的输出,并使用它做一些有用的事情。

http://linux.die.net/man/3/popen