0

我想用 execvp 运行这个命令

gcc file1.o file2.o file3.o

我创建了一个包含以下内容的选项卡:

char * tab = {"file1.o", "file2.o", "file3.o", NULL };

当我这样调用 execvp 时:

 execvp("gcc",tab);

我有这个错误:

file1.o: erreur fatale: -fuse-linker-plugin, but liblto_plugin.so not found

当我使用编译文件时:

gcc file1.o file2.o file3.o

没有问题。

请注意,我的程序不像我那样编写它是为了简化。完整代码请访问http://pastebin.com/zQ8pwmZd

4

1 回答 1

3

argv传递给的数组的第一个元素execvp(即传递给 的第二个参数execvp)应该是(就像argv传递给任何 C 程序函数的数组一样main)正在执行的程序的名称,之后的元素是第一个命令行参数。因此,tab应该是:

char * tab[] = {"gcc", "file1.o", "file2.o", "file3.o", NULL };
于 2013-10-26T22:47:38.437 回答