_MINGWとC ++ 0xを備えた_Stricmpは存在しませんか?
-
26-10-2019 - |
質問
私は現在、Mingw AndでGoogletestを使用しようとしています -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
代わりは。
他のヒント
マイケルによる解決に加えて、オーバーライドする他の方法があります strict ANSI
モード。コンピレーションの問題を伴うファイルに含まれる前に、以下を含めます。
#ifdef __STRICT_ANSI__
#undef __STRICT_ANSI__
#endif
これはだけではありません _stricmp
他の一般的な関数もあります swptintf
, vswprintf
と同時。
あなたは見ることができます MINGW-W64, 、-std = c ++ 11でGoogleテストを実行することができました(-std = c ++ 0xでも動作します)。 _stricmp、_strdupなどの問題を排除します。
所属していません StackOverflow