2011-01-17 10 views
4

-std=c++0xをg ++に指定すると、#include <iostream>を指定できません。次のエラーメッセージが表示されます(g ++ 4.4.0、mingw)。`#include <iostream>`と `-std = C++ 0x`が壊れています

In file included from c:\qt\2010.05\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/bits/postypes.h:42, 
       from c:\qt\2010.05\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/iosfwd:42, 
       from c:\qt\2010.05\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/ios:39, 
       from c:\qt\2010.05\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/ostream:40, 
       from c:\qt\2010.05\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/iostream:40, 
       from f.cpp:1: 
c:\qt\2010.05\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/cwchar:159: error: '::swprintf' has not been declared 
c:\qt\2010.05\mingw\bin\../lib/gcc/mingw32/4.4.0/include/c++/cwchar:166: error: '::vswprintf' has not been declared 

なぜでしょうか?これは最新のg ++​​で修正されましたか? (もしそうなら、誰も最新のg ++​​をQtに組み込む方法を知っていますか?)

+0

「-std = C++ 0x」を削除した場合、コンパイラは何を通知しますか? – Simone

+1

これはMinGWのC++ライブラリ/ヘッダーのバグのようですが、G ++ではそうではありません。 –

+0

@Simone:-std = C++ 0xを指定しないと、問題はありません。 – TonyK

答えて

7

これはbugのようです。単純なパッチをつけたthreadがあります(最後にあります)。

+0

ありがとうございます!それはうまくいった。 (あなたの答えに 'patch'に 'path'を編集したいかもしれません。) – TonyK

+0

@TonyK:thanks :) – ssmir

3
if win32{ 
    QMAKE_CXXFLAGS += -std=gnu++0x 
} 
else { 
    QMAKE_CXXFLAGS += -std=c++0x 
} 
関連する問題