【发布时间】:2009-09-30 19:02:19
【问题描述】:
示例代码如下:
struct TEMP
{
int j;
TEMP()
{
j = 0;
}
};
template<typename T>
class classA
{
struct strA
{
long i;
strA():i(0) {}
};
static strA obj_str;
classA();
};
template<typename T>
classA<T>::classA()
{}
template<typename T>
classA<TEMP>::strA classA<TEMP>::obj_str;
int main()
{
return 0;
}
在编译此代码时,我收到以下错误:
test1.cpp:32:内部编译器错误:在 import_export_decl 中,位于 cp/decl2.c:1970 请提交完整的错误报告, 如果合适,使用预处理的源。 有关说明,请参阅 http://bugzilla.redhat.com/bugzilla>。 存储在 /tmp/ccUGE0GW.out 文件中的预处理源,请将其附加到您的错误报告中。
我在x86_64-redhat-linux机器上构建这段代码,gcc版本是gcc version 4.1.2 20070626(Red Hat 4.1.2-14)
请注意,此代码已在 i386-redhat-linux 机器上使用 gcc 版本 3.4.5 20051201 (Red Hat 3.4.5-2) 构建。
知道为什么这不能用 gcc 4.1.2 构建。
提前致谢。
【问题讨论】:
-
您是否提交了完整的错误报告?这就是错误告诉你要做的事情。您现在可以尝试使用不同的编译器 [版本]。
-
在这里找到了一个错误报告:gcc.gnu.org/bugzilla/show_bug.cgi?id=24791 - 这看起来像是那个的变种。
-
内部编译器错误总是意味着编译器有问题,所以不要认为这是你的错。
标签: c++