您提到的错误都不是编译器错误。它不太可能是由编译器本身引起的。他们可能来自导致编译的调用链中的其他地方。
短期解决方案是从命令行编译。 MSBuild是Delphi在引擎下使用的构建引擎。
- 像往常一样编辑IDE中的任何Indy文件,保存更改并关闭IDE。
- 从开始菜单打开Rad Studio命令提示符。这将确保将适当的环境变量设置为运行命令行构建。您也可以使用标准命令提示符并运行rsvars.bat来完成相同的操作。
- 使用
cd
,如果你想做一个调试版本只是改变/p:config=Release
到/p:config=Debug
目录切换到IndyProtocols.dpk
- 类型
msbuild IndyProtocols.dpk /target:Build /p:config=Release
的位置。请注意,使用msbuild时,情况很重要,因为项目文件是xml,区分大小写。
另外,为了避免直接对IDE附带的库进行更改,您应该尽量避免进行更改。如果您在提供的库中发现了某个特定项目需要修复的错误,那么通常可以通过将违规文件复制到项目文件夹并在其中进行更改来获得该错误。您还可能需要复制其他几个相关文件。如果采取这种方法,编译器会告诉你哪些家属需要与错误,如Unit * was compiled with a different version of *.*
现在被复制,如果你真的想调试你可以试试IDE,但整个IDE使用的rtl
和coreide
包并且都被编译为发布版本(不包含调试信息),因此可能很难确定导致您看到的错误的原因。
无论如何,您可以使用项目管理器中加载的IndyProtocols.dpk运行IDE的第二个实例。然后使用第一个IDE实例的Run > Attach to Process
将调试器附加到第二个IDE实例。之后,尝试从第二个IDE实例创建IndyProtocols.dpk。如果一切按预期进行,调试器将捕获错误并让您在发生的位置中断,以便您可以四处挖掘。
您是否尝试重新启动delphi或计算机?有时德尔福可能会感到困惑,并给你奇怪的错误。尽管XE @比2006年更稳定。 – 2012-07-23 13:04:50
是的,我之前尝试过。但它没有奏效。 – Willy 2012-07-23 13:10:22