2010-03-19 34 views
3

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

任何人都知道是什么原因造成的?

更新:该问题似乎与我的系统上的子目录jvcl \ run有关。每次执行Delphi编译时(即使没有触及我的项目源),此文件夹中的所有单元都会重新编译。即使编译好的dcus已存在于jvcl \ lib \ d14中,编译后的dcus也会在每个编译的子目录中找到并留下。我没有jvcl \在我的库路径上运行。另外,如果我将jvcl \ run目录移动到硬盘上的其他地方,我的项目编译并链接成功,大概在jvcl \ lib \ d14(这是我的路径)中找到了dcus。

回答

1

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

要知道肯定,请在编译之前和之后检查绝地DCU的日期。

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

+1

诀窍的确是离开源出INCLUDEPATH,只有预编译DCU的。否则改变定义或触摸源文件将强制重新编译.dcu在任何地方飞来飞去(这会使后续编译复杂化) – 2010-03-19 16:30:09

+0

我已经将这些控件安装了一段时间(几个月),而没有看到这种行为。检查我的DCU我发现jvcl \ run中的所有DCU都显示三分钟前我上次编译的日期和时间。它是该子目录中的每个单元,包括我怀疑在任何参考链中的单元 - 例如JvFormPlacement。所有其他子目录都有原始安装日期(2009年11月19日)。 – 2010-03-19 16:32:30

+0

@Marco:jvcl \ run中的单元正在重新编译,即使这些单元是预编译在jvcl \ lib \ D14子目录中的。我最近没有对jvcl位置进行任何更改。 jvcl \ lib \ D14在我的库路径中; jvcl \ run不在我的库路径中(但它*在*我的“浏览路径”中)。有什么建议么? – 2010-03-19 16:43:52

1

有几个放置在您的设置中检查您的“jvcl \ run”路径。

前两个:

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

第三个是:

打开项目

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

最后,如果你通过你需要检查你的传入DCC32.CFG文件和/或PROJECTNAME什么命令行编译.CFG和命令行参数到DCCC32。

的原因,你的编译DCU的越来越放在目录源是因为你还没有设置“单元输出目录”