JEDI 控件总是重新编译

发布于 2024-08-25 14:45:12 字数 487 浏览 5 评论 0原文

我刚刚注意到,每当我对任何 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。

I've just noticed that whenever I do an incremental compile (ctrl-F9) of any of my Delphi 2010 projects, all JEDI units referenced in my project are recompiling although they have not been changed in any way. In fact, if I create a new project, drop a JEDI control on the form and compile, I see all JEDI dependencies getting recompiled. If I think hit ctrl-F9 a second time without making any changes in my project, the same thing happens.

Anyone know what's causing this?

Update: The problem appears to be related to the subdirectory jvcl\run on my system. All units in this folder are getting recompiled each time I do a Delphi compilation (even without touching my project source). The compiled dcus are getting and left in this subdirectory on every compilation, even though the compiled dcus already exist in jvcl\lib\d14. I do not have jvcl\run on my library path.

Additionally, if I move the jvcl\run directory elsewhere on my hard disk my project compiles and links successfully, presumably finding the dcus in jvcl\lib\d14 (which is on my path).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

毁梦 2024-09-01 14:45:12

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

为了确定这一点,请检查 Jedi DCU 编译前后的日期。

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

Sometimes you will see the unit name flash by on the compile progress screen, even when it is not being recompiled.

To know for sure, check the date of the Jedi DCU's before and after compile.

Also, how did you install the Jedi controls? If you use the default installer, then they shouldn't compile ever (they are compiled at install). If you just dropped all the source into your library path, then they will recompile on a build, or if they are changed (and various other conditions).

冷…雨湿花 2024-09-01 14:45:12

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

前两项:

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

第三个是:

打开您的项目

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

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

您编译的 DCU 被放置在源代码所在目录中的原因是因为您尚未设置“单元输出目录”

There are a few placed to check for your "jvcl\run" path in your settings.

The first two:

  • Tools|Options
  • Environment Options|Delphi Options|Library-Win32
    • (1) "Library Path:" Edit Box
    • (2) "Debug DCU Path:" Edit Box

The Third is:

Open Your Project

  • Project | Options
  • Directories/Conditionals
  • (3) Search Path: Edit Box

And finally if you compile via the command line you need to check what you are passing in the DCC32.CFG and/or PROJECTNAME.CFG and the command line parameters to DCCC32.

The reason your compiled DCU's are getting placed in directory your source is in is because you have not set an "Unit Output Directory"

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文