【问题标题】:Does Delphi require dfm at compile time when dcu is present?当 dcu 存在时,Delphi 在编译时是否需要 dfm?
【发布时间】:2016-08-20 06:11:46
【问题描述】:

我一直认为 dcu 文件是编译时所需的全部内容。至少,不需要源文件(pas 和 dfm)。

我有以下情况:

  • 具有两个单元的 Delphi 应用程序,每个单元都包含一个表单:
    • UMain 包含表单 TMain
    • USubForm 包含表单 TSubForm
  • USubForm 在 UMain 的 uses 子句中
  • 编译此程序后,我删除了 USubForm.pas 和 USubForm.dfm 并用编译后的 USubForm.dcu 替换它们。
  • 现在编译会导致错误:DCC : error : E1026 File not found: 'USubForm.dfm'
  • 请注意,如果我只删除 USubForm.pas(但将 USubForm.dfm 文件保留在 USubForm.dcu 旁边),则编译工作正常。

我不明白。我认为 dcu 文件就是我所需要的(即它是 pas + dfm 文件的编译版本)。

我正在使用 Delphi XE2(我们应该很快就会升级,但我认为这与我的问题无关)。

附:一些背景:我正在尝试为我们内部的 Delphi 库和应用程序设置一个持续集成系统。我希望能够在不需要库的源文件的情况下编译应用程序。

【问题讨论】:

    标签: delphi delphi-xe2


    【解决方案1】:

    是的,链接项目时需要 DFM 文件。它被视为资源文件。我记得,编译时不需要

    【讨论】:

    • 原来如此,那我一直都错了。将其视为资源文件是有道理的。事实上,它是在链接期间,而不是在编译期间。谢谢。
    • DCU 只是 PAS 文件的编译代码,不包括 DFM。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 2015-04-24
    • 2023-03-19
    • 2015-04-21
    • 1970-01-01
    相关资源
    最近更新 更多