从命令行我得到文件名,我必须使用gcc编译。让我们这样说吧。
./a.out fileToBeCompiled.c
然后我如何在我的程序中使用gcc编译这个文件?让我们说main.c正在制作a.out。
答案 0 :(得分:6)
只需从你的程序中执行gcc。
int main(int argc, char** argv)
{
execv("/usr/bin/gcc", argv);
}
答案 1 :(得分:2)
您始终可以通过程序中的shell执行命令调用gcc进行编译。
答案 2 :(得分:2)
答案 3 :(得分:0)
./a.out fileToBeCompiled.c && gcc fileToBeCompiled.c
如果./a.out
失败(它返回0以外的东西),则不会调用gcc
答案 4 :(得分:0)
很简单,你可以使用函数“system”(在stdio.h中定义)来执行c,c ++程序中的unix命令。
例如:我将在main.c中编译sub.c
void main(void)
{
system("cc sub.c -o sub");
}
您可以指定动态输入和输出文件。