当dcu存在时,Delphi在编译时是否需要dfm文件?

4
我一直以为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(我们应该很快升级,但我认为这与我的问题无关)。
P.S.一些背景:我正在尝试为我们内部的Delphi库和应用程序设置持续集成系统。我希望能够在不需要库的源文件的情况下编译应用程序。
1个回答

5

在链接项目时,您需要DFM文件。它被视为资源文件。据我回忆,编译时不需要它。


我明白了,我一直错了。将其视为资源文件是有道理的。确实,在链接期间而不是编译期间处理它。谢谢。 - Roel
DCU是PAS文件的编译代码,不包括DFM。 - Remy Lebeau

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接