gpt4 book ai didi

c++ - VS2008 内部编译错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:37:31 26 4
gpt4 key购买 nike

在尝试从 MSVC6 切换到 MSVC 2008 时,我一直遇到内部编译器错误。在对程序的不同部分进行大量注释后,我将错误追踪到两个不同 CPP 文件中的两行代码.这两个 CPP 文件都编译成功,但会以某种方式影响错误是否出现在其他文件中。

这两行都涉及实例化几个复杂的嵌套模板。它们似乎也是应用程序中唯一使用抽象类作为模板参数之一的地方。也就是说,我不确定这个问题涉及抽象类还是模板,这只是我注意到的最明显的事情。我什至不能确定这些线条是否重要。不过,它们的外观如下:

m_phDSAttributes = new SObjDict<RWCString, SIDataSource>(&RWCString::hash);

所以我们得到了SObjDict,一个模板化的字典类,SIDataSource,一个抽象接口(interface),参数是一个指向RWCString静态成员函数的指针。

我一直在研究代码,偶尔会遇到从一个 CPP 文件移动到另一个 CPP 文件的错误(例如,我将一堆模板声明从使用 class 更改为到 typename),但我找不到任何押韵或理由。

我不知道如何进一步调试这个问题。编译器输出的确切错误(更改了我的源文件的名称)如下。互联网上的任何地方都没有提及它。我非常渴望获得有关如何进行的任何建议。我不希望有人说“哦,你只需要做 XYZ”,但非常感谢有关如何调试此类问题的指导。

1>d:\Dev\webapi.cpp : fatal error C1001: An internal error has occurred in the compiler.
1>(compiler file 'f:\dd\vctools\compiler\utc\src\p2\p2symtab.c', line 5905)

最佳答案

技巧似乎是禁用预编译头文件。我不知道为什么解决了这个问题,这很不幸,因为受影响项目的构建时间从不到 30 秒缩短到将近 5 分钟,但至少我可以向前推进。

关于c++ - VS2008 内部编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1009165/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com