使用' 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位;
我不确定我错过了哪个图书馆。
答案 0 :(得分:3)
使用stricmp
代替<string.h>
这是一个非常常见的扩展,但请注意它也是不标准C函数。如果做不到这一点,请尝试_stricmp
。
您可以#DEFINE
strcmpi
到stricmp
,这在定位多个平台时非常常见。
我倾向于在源代码中使用_stricmp
,并在多平台标题中使用#DEFINE
相关函数。
答案 1 :(得分:0)
如果你知道strcmpi
做了什么,你可以自己实现它并将结果链接到你的程序中。如果它符合我的想法,那就简单地写一下
extern int
strcmpi(const char *a, const char *b)
{
return _stricmp(a, b);
}
应该在Windows上做到这一点。