2016-04-26 53 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。 –