我正在编写一个获得C文件路径的代码,我想通过程序代码编译该文件。这意味着编译不会出现在命令行中:
gcc -o a.out file.c
有办法吗?
答案 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)