我在编译时通常不会显示编译进度,但我决定打开它。
我注意到,当我的程序编译时,它也在编译它使用的组件。 例如,它使用 Toolbar2000 (TB2K),在编译器进度窗口中我可以看到它显示正在编译 TB2kDock.pas 等。
这是设计使然吗? 也许有一个设置,我可以告诉它不要每次都编译组件(因为它们没有改变),而只编译程序实际源代码目录中的内容?
编译应该只是重新编译更改的单元并创建新的 dcu 文件。 链接器总是必须从 dcu 文件重建 Exe。无论您是否修改过,Build 都会为所有 pas 文件重新创建 dcu 文件。
在研究这个之前,您必须了解编译应用程序和构建应用程序是两件不同的事情。据我了解,当您编译应用程序时,Delphi 会修改 exe,并简单地更改您在应用程序代码中更改的内容。当您构建应用程序时,它会替换 exe。
因此,当您构建应用程序时,如果将重新编译设置和选项中列出的组件的所有单元,但是当您刚刚编译它时(即使它说它编译该单元),它实际上只是搜索更改的代码片段在您的 exe 中需要修改的单元中
我当然是在更正中说话