_带有mingw和c++0x的stricmp不存在
_stricmp with mingw and c++0x not existent?
我目前正尝试将谷歌测试与MinGW和-std=c++0x
一起使用,但它抱怨_stricmp is not declared in this scope
,而当我不使用-std=c++0x
时,它没有。我不知道_stricmp
是什么,我只是发现它是在cstring/string.h
中定义的,那么为什么它在C++0x中消失了呢?
-std=c++0x
选项会使g++进入"严格ANSI"模式,因此它不会声明非标准函数(而_stricmp()
是非标准的,它只是strcmp()
的一个不区分大小写的版本)。
请改用-std=gnu++0x
。
除了Michael的解决方案外,还有其他方法可以覆盖strict ANSI
模式。在有编译问题的文件中包含以下内容之前:
#ifdef __STRICT_ANSI__
#undef __STRICT_ANSI__
#endif
这不仅有助于_stricmp
,也有助于其他常见功能,如swptintf
、vswprintf
和simmilar。
您可以看看MinGW-w64,它允许我使用-std=c++11运行Google测试(也可以与您的-std=c++0x一起使用)。它消除了_stricmp、_strdup等问题。
我也遇到过完全相同的问题,但对我来说,这是因为我在include路径中有一个文件String.h
,它是由预处理器获取并使用的,而不是标准的。由于此线程而找到。
相关文章:
- 我们可以访问一个不存在的联盟的成员吗
- C++:对不存在的命名空间使用命名空间指令
- g++ 说函数不存在,即使包含正确的标头
- 显式 std::exception_ptr 转换为 bool 不存在.VS2010 错误?
- C++ 尝试在不存在的构造函数中引用已删除的函数(使用 rapidJson)
- 查找第一个数组中不存在的元素
- 查找不存在的键时,unordered_map返回什么
- 如何优化代码以返回最接近给定整数的数字,但给定列表中不存在?
- set::find 查找不存在的元素
- 有没有办法将字符串添加到 Vector 中,但前提是它尚不存在?->C++
- inet_ntop返回不存在的地址
- CPP 使用不存在的键访问映射
- 为什么QMediaGaplessPlaybackControl不存在?
- 如果键不存在,使用 [] 运算符访问 STL Map 元素会添加新元素
- 标记未定义的颜色,并且颜色匹配系统中不存在样品
- 为什么minhook库目录不存在
- 为什么 std::vector::p ush_front() 不存在?
- 不存在从"Magick::Color"到"MagickCore::Quantum"的合适转换功能
- 为什么 MDI 子窗口在WM_NCCREATE后不存在?
- _带有mingw和c++0x的stricmp不存在