使用时,我的代码无法正确编译:
system("gcc -o filename temp.c");
我得到了:
implicit declaration of function system
我不确定缺少什么,因为它只会在gcc调用中抛出系统错误。
这是我的代码:
#include <stdio.h>
int main() {
...
system("gcc -o filename temp.c");
return 0;
}
答案 0 :(得分:9)
在#include <stdlib.h>
的顶部添加main()
。
提示:当您看到内置函数的隐式声明时,您必须搜索该函数(使用google,例如现在您应该搜索&#34; system() C&#34;),以便找到相应的标题,即声明函数的位置。然后其中一个结果应该是函数的引用。
在我们的案例this链接中。在那里你可以看到:
概要
#include <stdlib.h>
int system(const char *command);
告诉您必须包含stdlib
标头才能使用system()
。
正如布莱特先生所注意到的那样,如果您使用的是类似inux的操作系统,man 3 system
也可以做到这一点。
示例:
samaras@samaras-A15:~$ man 3 system
SYSTEM(3) Linux Programmer's Manual SYSTEM(3)
NAME
system - execute a shell command
SYNOPSIS
#include <stdlib.h> <-- this is what we are looking for!
int system(const char *command);
...
答案 1 :(得分:1)
由于看起来您正在使用Posix系统,因此您应该了解man
命令,该命令显示了大多数库调用的文档。在我的系统上,当我输入:
$ man system
我明白了:
SYSTEM(3) Linux Programmer's Manual
NAME
system - execute a shell command
SYNOPSIS
#include <stdlib.h>
int system(const char *command);
请注意,在概要中,它会告诉您需要使用的包含文件。手册页还包含许多其他文档,例如返回值。
答案 2 :(得分:-2)
您没有收到错误,也没有阻止编译代码,只是警告您没有添加库系统功能,但gcc会自动添加。