JEDI控件总是重新编译

时间:2010-03-19 14:57:46

标签: delphi delphi-2010 jedi

我刚刚注意到,每当我对任何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(这是在我的路径上)。

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:1)

您可以在设置中检查“jvcl \ run”路径。

前两个:

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

第三是:

打开您的项目

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

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

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