2016-04-26 55 views
2

我总是认为dcu文件是编译时所需要的。至少,源文件(pas和dfm)不应该是必需的。当dcu存在时,Delphi在编译时是否需要dfm?

我有以下情况:

    有两个单元,每个包含一个形式
  • Delphi应用程序:
    • UMain包含形成TMain
    • USubForm包含窗体TSubForm
  • USubForm在UMain的使用条款中
  • I编译这个程序,我删除了USubForm.pas和USubForm.dfm,并用编译的USubForm.dcu替换它们。
  • 编译现在将导致一个错误:DCC : error : E1026 File not found: 'USubForm.dfm'
  • 需要注意的是,如果我只删除USubForm.pas(但保留在旁边USubForm.dcu地方USubForm.dfm文件),编译工作。

我不明白。我以为dcu文件就是我所需要的(即它是pas + dfm文件的编译版本)。我使用Delphi XE2(我们应该尽快升级,但我不认为这与我的问题有关)。

P.S.一些背景:我试图为我们的内部Delphi库和应用程序建立一个持续集成系统。我希望能够编译应用程序而不需要库的源文件。

回答

5

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

+0

我明白了,那我一直都是错的。它是有道理的,它被视为一个资源文件。事实上,这是在链接,而不是编译。谢谢。 – Roel

+0

DCU是仅用于PAS文件的编译代码,它不包含DFM。 –