下面展示了Delphi是怎样编译源文件,并且把它们链接起来,最终形成可执行文件。
当Delphi编译项目(Project)时,将编译项目源文件、窗体单元和其他相关单元,在这个过程中将会发生好几件事情:
首先,Object Pascal编译器把项目单元编译为二进制对象文件,然后资源编辑器将把诸如程序图标、窗体文件等资源编译成二进制资源文件,接着链接开始起作用;链接器根据编译器产生的二进制文件,依项目需要增加一些库文件,并把这些文件综合在一起产生最终的可执行文件。
编译、创建和链接
每当点击Run按钮时,Delphi都会编译和链接程序,但它只编译改动过的单元。Delphi能知道哪个个文件已改动,哪个文件没有改到。
绝大部分时间中,我们都想看一看改变后的程序运行结果,在这种情况下,就需要点击Run按钮,程序将被编译、链接和执行。但有时候可能不想运行程序,比如只想编译程序,看一看有没有什么错误。
当默认创建一个Application时(工程文件名DRP默认为Project1),在Delphi的主菜单Project下,则有以下几个菜单选项:
1、Syntax check Project1 选项,它能让Delphi编译工程,并且报出任何错误和警告,这时检查代码错误最快的方法,Delphi只编译工程,而不执行链接,Syntax check选项的目的就是尽快检查代码的语法错误,因为链接阶段需要占额外的时间,Syntax check忽略了这一步。界面如下:
2、Compile Project1 选项,就像Syntax check一样,它用来编译从最近一次编译后改动过的任何单元。它需要执行链接,因此比Syntax check 选项所占的时间稍长一点,当需要只编译和链接程序而不运行时就可以用Compile 选项。界面如下:
默认情况下,该Compile选项不会显示编译状态对话框,通过主菜单【Tools | Environment Option】对话框中打开“Preferences”选项卡,在Compiling and running组合框中勾选“Show compiler progress”选项即可打开编译状态对话框,如下:
Delphi编译工程的速度非常快,故一般不需要编译状态对话框,实际上,编译状态对话框增加了编译时间,因为编译状态对话框中显示信息是占用时间的。
3、Build project1 选项,占的时间最长,这个选项编译工程中的每一个单元,不管这个单元是否有改动,当编译完所有单元后,Delphi链接整个工程,并生成Project1.exe可执行文件。
不管选择哪种方式编译工程,如果发现了错误,Code Editor 将会出现在顶级窗口,并且Code Editor 底部的信息窗口将会显示错误和警告清单。Code Editor 会把第一处出错的代码行加亮,当成功进行语法检查、编译、链接和创建后,就可以通过选择Run按钮来运行程序。
编译并建立其他Delphi程序
在Delphi中,大部分情况都是编写基于VCL的应用程序。但有时也要编写其他类型的应用程序。点击主菜单【File | New | Other..】可以看到Delphi支持的其他类型应用程序,如下:
DLL Wizard,将创建动态链接库(DLL)
Console Application,Win32控制台应用程序是一种32位程序,它在Windows的DOS模式下运行。任何不需要图形接口的应用程序基本上都适合控制台应用程序。