制作一个C程序进行编译另一 [英] Making a C program to compile another
本文介绍了制作一个C程序进行编译另一的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我希望做一个程序编译另一个目的。
其目的是使用exec来运行gcc。
我必须使用execve的和我有什么是:
的#include<&unistd.h中GT;
#包括LT&; SYS / types.h中>INT主(INT ARGC,CHAR *的argv []的char * envp [])
{
的argv [0] =海湾合作委员会;
execve的(的/ usr / bin中/海湾合作委员会,argv的,envp);
返回0;
}
这样做
的gcc -Wall -o p3p4.c运行
它编译没有问题,但这样做的时候
./运行p3p1.c
要尝试编译另外一个,这种情况发生:
运行:错误尝试执行CC1':execvp:没有这样的文件或目录
编辑:
诚如,增加线的时候:
的argv [0] =海湾合作委员会;
在程序管理工作。
谢谢你的投入。
解决方案
尝试设置的argv [0]
像一个乖巧的程序:
的argv [0] =海湾合作委员会;
execve的(的/ usr / bin中/海湾合作委员会,argv的,envp);
运行:错误尝试执行CC1
块引用>这显然是什么GCC尝试当它发现一些意想不到的
ARGV运行[0]
。I'm looking to make a program with the purpose of compiling another. The purpose being using exec to run gcc. I have to use execve and what I have is:
#include <unistd.h> #include <sys/types.h> int main(int argc, char* argv[], char* envp[]) { argv[0] = "gcc"; execve("/usr/bin/gcc" , argv, envp); return 0; }
By doing
gcc -Wall p3p4.c -o run
It compiles without problems, but when doing
./run p3p1.c
To try and compile another one, this happens:
run: error trying to exec 'cc1': execvp: No such file or directory
EDIT:
As advised, when adding the line:
argv[0] = "gcc";
The program manages to work. Thank you for the input.
解决方案Try setting
argv[0]
like a well-behaved program:argv[0] = "gcc"; execve("/usr/bin/gcc" , argv, envp);
run: error trying to exec 'cc1':
This is apparently what gcc tries to run when it finds something unexpected in
argv[0]
.这篇关于制作一个C程序进行编译另一的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文