使用gcc在另一个程序中编译程序

时间:2009-11-14 19:40:14

标签: c

从命令行我得到文件名,我必须使用gcc编译。让我们这样说吧。

./a.out fileToBeCompiled.c

然后我如何在我的程序中使用gcc编译这个文件?让我们说main.c正在制作a.out。

5 个答案:

答案 0 :(得分:6)

只需从你的程序中执行gcc。

int main(int argc, char** argv)
{
   execv("/usr/bin/gcc", argv);
}

答案 1 :(得分:2)

您始终可以通过程序中的shell执行命令调用gcc进行编译。

Reference to the system function.

答案 2 :(得分:2)

了解如何致电fork()exec()wait()。您可能希望将execv()用于此目的。

答案 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");
}

您可以指定动态输入和输出文件。