[英]In Delphi 7, how do I trace the order in which the units are being compiled?
我有一个应用程序,它是在Turbo Pascal 5中开始的,现在是Delphi 7(该项目的根源已超过20年)。 我们正在尝试将此项目移至Delphi XE。
有一个单元正在编译成exe,根本不应该编译到这个项目中。 我无法正确追踪它是如何进入编辑的。
是否有日志或其他方法,我可以用来查看正在编译的单位的顺序,以便我可以追查这个问题?
注意:我已经尝试使用ICARUS工具来完成跟踪而没有成功。
编辑:我确信使用蛮力和足够的时间我可以解决这个问题。 我正在寻求的是一个更优雅的解决方案,如果有的话。
要跟踪订单,您可以尝试使用Process Monitor之类的工具来监控磁盘I / O. Delphi本身不记录这种信息。
要了解为什么该单元被包含在您的程序中,有一种更简单的方法。 只需删除(或隐藏)单位即可。 编译将失败,编译器将指向提及不存在单元的uses
子句。
我在问题中的答案我可以确定我的单位初始化的顺序吗? 可以帮到这里。
它将列出单位的加载顺序,并且之前的单位可能负责加载它。
当我在编辑中发现这样的问题时,我会执行以下操作:
检查IDE库路径。 删除不必要的和无关的目录。
检查项目搜索路径。 删除不必要的和无关的目录。
删除所有DCUS。
找到所有Windows Vista / Windows 7 / Windows8“虚拟商店”内容并删除,同时找到任何无关的BPL或DCP,然后删除。
为不需要的单元创建UnitAlias。 单位别名“UnwantedUnit = GoAway”。
建立。 (在这种情况下,始终使用Build,而不是编译)
这使得找到失败的单位变得容易得多。
重命名文件系统中.pas文件的所有出现并删除所有相应的DCU文件。 然后构建您的项目。 如果进行了使用,编译器将发现它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.