警告:隐式声明函数'kill'

时间:2012-04-03 13:41:52

标签: c kill

我正在制作这些内容:

#include <signal.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>

但仍然得到这个警告。

3 个答案:

答案 0 :(得分:9)

您可能正在将“-ansi -Wall”开关传递给gcc编译器。 如果不需要,可以删除“-ansi”,否则尝试设置正确的功能定义宏。

类似的东西:

#define _POSIX_SOURCE
#include <sys/types.h>
#include <signal.h>
#include <unistd.h>
#include <sys/wait.h>

答案 1 :(得分:1)

您也可以通过在gcc中添加此标志来在编译时定义它。

-D_POSIX_C_SOURCE

例如:

-g -D_POSIX_C_SOURCE -Wall -std=c99

答案 2 :(得分:0)

根据kill(2) Linux 手册页,_POSIX_C_SOURCE 必须在任何包含之前#defined 才能通过<signal.h> 包含函数kill() 的原型如果您使用的是 glibc。

您的代码可能会以任何一种方式编译,因为无论定义如何,二进制文件都可用于链接,但这是根据文档消除此警告的正确方法。