1

説明できない奇妙なコンパイル エラーが発生します。次のコードは最小限の例であり、このエラーが発生します。

#include <map>
int main()
{
    return 0;
}

問題は、マップ ヘッダー ファイルが含まれているためにエラーが発生することです。

p:\mingw\bin\../lib/gcc/mingw32/4.6.2/include/c++/bits/stl_map.h:109:15: error: 'map' is not a template
p:\mingw\bin\../lib/gcc/mingw32/4.6.2/include/c++/bits/stl_map.h:162:48: error: only declarations of constructors can be 'explicit'
p:\mingw\bin\../lib/gcc/mingw32/4.6.2/include/c++/bits/stl_map.h:172:17: error: 'map' does not name a type
p:\mingw\bin\../lib/gcc/mingw32/4.6.2/include/c++/bits/stl_map.h:252:7: error: 'map' does not name a type
p:\mingw\bin\../lib/gcc/mingw32/4.6.2/include/c++/bits/stl_map.h:693:12: error: 'map' is not a type
p:\mingw\bin\../lib/gcc/mingw32/4.6.2/include/c++/bits/stl_map.h:856:26: error: 'map<_K1, _T1, _C1, _A1>' does not name a type
p:\mingw\bin\../lib/gcc/mingw32/4.6.2/include/c++/bits/stl_map.h:857:12: error: 'map<_K1, _T1, _C1, _A1>' does not name a type
...

これは延々と続きます (何百ものエラー)。他の C++ ヘッダー (文字列、ベクターなど) を含めることに問題はありません。

私はグーグル経由でこれについて何かを見つけようとしましたが、成功しませんでした。このような問題の原因は何か考えている人はいますか?

それが役立つ場合:私はWindows 7を使用しており、「g ++ -v」出力を実行しています:

Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=p:/mingw/bin/../libexec/gcc/mingw32/4.6.2/lto-wrapper.exe
Target: mingw32
Configured with: ../gcc-4.6.2/configure --enable-languages=c,c++,ada,fortran,objc,obj-c++ --disable-sjlj-exceptions --with-dwarf2 --enable-shared --enable-libgomp --disable-win32-registry --enable-libstdcxx-debug --enable-version-specific-runtime-libs --build=mingw32 --prefix=/mingw
Thread model: win32
gcc version: 4.6.2 (GCC)
4

0 に答える 0