如何解决警告:内置函数“yz”的不兼容隐式声明
在 C 中,使用以前未声明的函数构成函数的隐式声明。在隐式声明中,int
如果我没记错的话,返回类型是。现在,GCC
已经内置了一些标准函数的定义。如果隐式声明与内置定义不匹配,则会收到此警告。
要解决此问题,您必须在使用函数之前声明它们;通常你通过包含适当的标题来做到这一点。如果可能,我建议不要使用这些-fno-builtin-*
标志。
而不是 ,您应该尝试:
#include <string.h>
这就是定义strcpy
和strncpy
定义的地方,至少根据strcpy
(2) 手册页。
不过,该exit
函数是在 中定义的,所以我不知道那里发生了什么。
解决方法
在编译一些二进制文件时,我收到了许多这样的警告:
warning: incompatible implicit declaration of built-in function 鈥榮trcpy鈥�
warning: incompatible implicit declaration of built-in function 鈥榮trlen鈥�
warning: incompatible implicit declaration of built-in function 鈥榚xit鈥�
为了尝试解决这个问题,我添加了
#include <stdlib.h>
在与此警告相关的 C 文件的顶部,除了使用以下标志进行编译:
CFLAGS = -fno-builtin-exit -fno-builtin-strcat -fno-builtin-strncat -fno-builtin-strcpy -fno-builtin-strlen -fno-builtin-calloc
我正在使用 GCC 4.1.2:
$ gcc --version
gcc (GCC) 4.1.2 20080704
我应该怎么做才能解决这些警告?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。