gcc 函数“str[n]casecmp”的隐式声明[-Werror=隐式函数声明]

tmb3ates  于 2022-11-12  发布在  其他
关注(0)|答案(2)|浏览(363)

我正在使用C99编译一个C库。我正在将 string.h 包含到我的翻译单元中(并且我可以在我的NetBeans IDE中导航到str?casecmp函数的定义)。
源代码如下所示:

#include <string.h>

int foo(char* c1, char* c2) {
   return strcasecmp(c1, c2);
}

int foobar(char* c1, char* c2, int n) {
   return strncasecmp(c1, c2, n);
}

但是,当我试图编译时,我得到了标题中显示的错误。
我使用的是GCC版本4.6.3(Ubuntu/Linaro 4.6.3- 1ubuntu 5)。
下面是我的gcc命令:

gcc -c -g -Werror -DE4C_THREADSAFE -DLINUX_BUILD -I../include -I../genutils -std=c99 -fPIC  -MMD -MP -MF build/Debug/GNU-Linux-x86/btypes.o.d -o build/Debug/GNU-Linux-x86/btypes.o btypes.c

是什么导致了这种情况,我该如何解决它?

x9ybnkn6

x9ybnkn61#

这些函数是在strings.h中声明的,而不是在string.h中声明的。

acruukt9

acruukt92#

包括标头 strings.h,而不是 string.h

相关问题