在过去的几个月里,我的 Delphi 安装一直在走下坡路。似乎当我构建一个版本时,它经常会出现奇怪的错误,如果我构建,然后编译,然后构建,编译等,这些错误就会得到解决。
我与另一位认为这是编译器错误的开发人员交谈过。随着时间的推移,这种性能下降的情况也发生在我们的其他计算机上。
堆栈溢出认为可能是什么问题。
在过去的几个月里,我的 Delphi 安装一直在走下坡路。似乎当我构建一个版本时,它经常会出现奇怪的错误,如果我构建,然后编译,然后构建,编译等,这些错误就会得到解决。
我与另一位认为这是编译器错误的开发人员交谈过。随着时间的推移,这种性能下降的情况也发生在我们的其他计算机上。
堆栈溢出认为可能是什么问题。
我看到的最多的是相同单元/dcus 的多个版本存在于不同文件夹/路径中的情况,并且根据几乎无关紧要的变化,编译器/链接器使用不同的路径并选择不同版本的单元来构建 exe .
我会进行大规模的 Spring 清理,检查 lib/search 路径,删除所有 dcus 并确保没有任何单元的重复版本。
而且,同意,重新安装 Delphi 可以帮助从一个干净的状态开始。
我同意@François 关于 DCU 的观点,但也想指出一个观察结果:有时在你正在建造的东西之前建造的东西很重要。即,如果您有多个项目包含导致在公共目录中创建各种 .dcu/bpl 文件的源代码,但您关注的项目没有明确要求重建它们,那么您就是最终会得到任何东西。如果您在构建之前清除了 dcus/dcps,然后发现您的项目没有构建,那么您在某处缺少了 uses/requires 子句。每个项目都应该能够建立在“干净的状态”上,而不是依赖剩余的二进制文件。
这没什么好说的,但这听起来像是“位腐烂”的经典案例。在设计不佳的操作系统下,太多的事情以太多的方式交互太长时间,导致奇怪的数据损坏形式。
我要做的第一件事是卸载Delphi并重新安装。如果这不起作用,请尝试重新安装 Windows。(如果发生这种情况的时间已经足够长,那么您可能需要重新安装操作系统。)如果这不起作用,请联系 Embarcadero 技术支持。