我正在使用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
造成这种情况的原因是什么,以及如何解决?
答案 0 :(得分:9)
这些函数在strings.h
中声明,而不是string.h
。
答案 1 :(得分:1)
包括头文件strings.h而不是string.h ..