繁体   English   中英

在Delphi 7中,如何跟踪编译单元的顺序?

[英]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子句。

我在问题中的答案我可以确定我的单位初始化的顺序吗? 可以帮到这里。

它将列出单位的加载顺序,并且之前的单位可能负责加载它。

当我在编辑中发现这样的问题时,我会执行以下操作:

  1. 检查IDE库路径。 删除不必要的和无关的目录。

  2. 检查项目搜索路径。 删除不必要的和无关的目录。

  3. 删除所有DCUS。

  4. 找到所有Windows Vista / Windows 7 / Windows8“虚拟商店”内容并删除,同时找到任何无关的BPL或DCP,然后删除。

  5. 为不需要的单元创建UnitAlias。 单位别名“UnwantedUnit = GoAway”。

  6. 建立。 (在这种情况下,始终使用Build,而不是编译)

这使得找到失败的单位变得容易得多。

重命名文件系统中.pas文件的所有出现并删除所有相应的DCU文件。 然后构建您的项目。 如果进行了使用,编译器将发现它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM