函数'str [n] casecmp'的隐式声明[-Werror = implicit-function-declaration]

时间:2012-12-27 06:09:02

标签: c gcc c99

我正在使用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-1ubuntu5)。

这就是我的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

造成这种情况的原因是什么,以及如何解决?

2 个答案:

答案 0 :(得分:9)

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

答案 1 :(得分:1)

包括头文件strings.h而不是string.h ..