未解决的外部符号' strcmpi'在Windows上

时间:2015-12-23 10:23:09

标签: c

使用' icl'在Windows-10平台上编译我的C项目时编译器,我得到以下错误:

  

OLDNAMES.lib(strcmpi.obj):错误LNK2001:未解析的外部符号   strcmpi OLDNAMES.lib(strcmpi.obj):错误LNK2001:未解析的外部   符号_strcmpi

请帮我解决这个问题。 LIB环境变量的值为:

echo %LIB%
  

C:\ PROGRA〜2 \英特尔\\编译\ lib中; C:\ PROGRA〜1 \ MICROS〜1 \ LIB \ AMD64 \ atlmfc; C:\ PROGRA〜1个\ MICROS〜1 \ LIB \ AMD64 \; C:\ PROGRA〜1个\ MICROS〜1 \ LIB \; C:\ PROGRA〜2 \英特尔\\编译\ lib中\ Intel64位;

我不确定我错过了哪个图书馆。

2 个答案:

答案 0 :(得分:3)

使用stricmp代替<string.h>这是一个非常常见的扩展,但请注意它也是标准C函数。如果做不到这一点,请尝试_stricmp

您可以#DEFINE strcmpistricmp,这在定位多个平台时非常常见。

我倾向于在源代码中使用_stricmp,并在多平台标题中使用#DEFINE相关函数。

答案 1 :(得分:0)

如果你知道strcmpi做了什么,你可以自己实现它并将结果链接到你的程序中。如果它符合我的想法,那就简单地写一下

extern int
strcmpi(const char *a, const char *b)
{
    return _stricmp(a, b);
}

应该在Windows上做到这一点。