3

我刚刚注意到,每当我对我的任何 Delphi 2010 项目进行增量编译 (ctrl-F9) 时,我的项目中引用的所有 JEDI 单元都在重新编译,尽管它们没有以任何方式进行更改。事实上,如果我创建一个新项目,在表单上放置一个 JEDI 控件并进行编译,我会看到所有 JEDI 依赖项都被重新编译。如果我认为再次按 ctrl-F9 而不对我的项目进行任何更改,则会发生同样的事情。

有谁知道这是什么原因造成的?

更新:问题似乎与我系统上的子目录 jvcl\run 有关。每次我进行 Delphi 编译时,这个文件夹中的所有单元都会重新编译(即使没有接触我的项目源代码)。每次编译时,已编译的 dcus 都会在此子目录中获取和保留,即使已编译的 dcus 已存在于 jvcl\lib\d14 中。我的库路径上没有 jvcl\run。

此外,如果我将 jvcl\run 目录移动到硬盘上的其他位置,我的项目将成功编译和链接,大概是在 jvcl\lib\d14 (在我的路径上)中找到了 dcus。

4

2 回答 2

1

有时您会在编译进度屏幕上看到单元名称闪烁,即使它没有被重新编译。

要确定,请检查 Jedi DCU 编译前后的日期。

另外,你是如何安装绝地控制的?如果您使用默认安装程序,那么它们不应该编译(它们在安装时编译)。如果您只是将所有源代码放到您的库路径中,那么它们将在构建时重新编译,或者如果它们被更改(以及各种其他条件)。

于 2010-03-19T16:25:06.543 回答
1

有一些地方可以检查您的设置中的“jvcl\run”路径。

前两个:

  • 工具|选项
  • 环境选项|Delphi 选项|库-Win32
    • (1)“库路径:”编辑框
    • (2)“调试DCU路径:”编辑框

第三个是:

打开您的项目

  • 项目 | 选项
  • 目录/条件
  • (3) 搜索路径:编辑框

最后,如果您通过命令行编译,您需要检查您在 DCC32.CFG 和/或 PROJECTNAME.CFG 中传递的内容以及向 DCCC32 传递的命令行参数。

您编译的 DCU 被放置在您的源目录中的原因是因为您没有设置“单元输出目录”

于 2010-05-12T23:59:19.190 回答