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
...

这种情况一直持续下去(100 次这样的错误)。包含其他 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