私は現在、MinGW で googletest を使用しようとしていますが、使用しない場合はそうではない-std=c++0x
と文句を言います。で定義されていることがわかりましたが、なぜ C++0x でなくなったのですか?_stricmp is not declared in this scope
-std=c++0x
_stricmp
cstring/string.h
9273 次
3 に答える
24
この-std=c++0x
オプションにより、g++ は「厳密な ANSI」モードになるため、非標準関数は宣言されません (そして非標準です -大文字と小文字を区別しない_stricmp()
バージョンにすぎません)。strcmp()
-std=gnu++0x
代わりに使用してください。
于 2011-06-10T21:43:00.100 に答える
7
マイケルによる解決策に加えて、モードをオーバーライドするための他の方法がありstrict ANSI
ます。コンパイルに問題があるファイルにインクルードする前に、次をインクルードします。
#ifdef __STRICT_ANSI__
#undef __STRICT_ANSI__
#endif
これは、 、および類似_stricmp
のような他の一般的な機能だけでなく、役立ちます。swptintf
vswprintf
于 2013-05-09T22:52:42.843 に答える