gpt4 book ai didi

c - 警告 : incompatible implicit declaration of built-in function ‘xyz’

转载 作者:太空狗 更新时间:2023-10-29 16:14:14 26 4
gpt4 key购买 nike

我在编译一些二进制文件时收到了一些这样的警告:

warning: incompatible implicit declaration of built-in function ‘strcpy’
warning: incompatible implicit declaration of built-in function ‘strlen’
warning: incompatible implicit declaration of built-in function ‘exit’

为了解决这个问题,我添加了

#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

我应该怎么做才能解决这些警告?

最佳答案

在 C 中,使用以前未声明的函数构成函数的隐式声明。在隐式声明中,返回类型是 int 如果我没记错的话。现在,GCC 已经内置了一些标准函数的定义。如果隐式声明与内置定义不匹配,则会收到此警告。

要解决这个问题,您必须在使用函数之前声明它们;通常你通过包含适当的标题来做到这一点。如果可能,我建议不要使用 -fno-builtin-* 标志。

代替 stdlib.h,您应该尝试:

#include <string.h>

这就是定义 strcpystrncpy 的地方,至少根据 strcpy(2) 手册页是这样。

不过,exit 函数是在 stdlib.h 中定义的,所以我不知道那里发生了什么。

关于c - 警告 : incompatible implicit declaration of built-in function ‘xyz’ ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/977233/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com