函数'_strnicmp'的隐式声明在C99中无效

时间:2013-08-09 04:09:40

标签: ios c xcode

我是iOS的新手

现在我反击了一个问题

#define strncasecmp _strnicmp

它有一个警告:

implicit declaration of function '_strnicmp' is invalid in C99

也有错误:

Undefined symbols for architecture armv7:
"__strnicmp", referenced from:
  _AVI_open_input_file in avilib.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

如何解决这个问题?

1 个答案:

答案 0 :(得分:4)

很简单,你的C运行时没有函数_strnicmp,它是Microsoft-specific function,而不是标准的C函数。

您应该删除#define并使用strncasecmp功能,因为strncasecmpPOSIX function,iOS符合POSIX标准。