关于delphi编译路径设置问题

公司有一个控件是用delphi编的,有bug需要修改,我接手之后就开始修改。因为工程使用了大量的外部控件,而且有些源代码需要用最新版替换掉,所以我决定把这些外部控件的源代码整合到一个project group中去。原来以为简单的一个dpk工程的compile和install,谁知道这个工作耗费了将近2天时间。问题很简单,不是不能通过编译,而是明明编译成功的bpl文件,却报告路径找不到。

经过时断时续的多种方法尝试,终于找到了一个比较满意的工程路径设置规范,记录如下。

在delphi中有两处涉及到路径的配置,一个是菜单tools\options中的environment options/delpihi options/library位置,使用者可以设置库文件查找路径(library path),包输出路径,dcp文件的输出目录,源代码浏览路径等,我这里用到两个,一个是package output directory,另外一个是dcp output directory。前者是bpl包的输出目录,后者是dcu文件的输出目录。这个是系统默认的输出设置,我们这里也不要去修改。

另外一处是project本身的options设置,这里和默认输出有些不一样,设置的是输出目录(output directory),单元文件输出目录,查找路径,dcp输出目录等。我们这里要做如下的设置:

output directory:留空,使用全局设置

dcp output directory:留空,使用全局设置

unit output directory:所有工程设置成同一个输出,比如..\output。记住要设置路径,否则别人拿到你的工程一样会麻烦。

search path:该位置用于告诉编译器如何寻找pas、dcu文件。一定要包含unit output directory的内容,比如..\output。看情况加入其他的查找位置。

这样设置之后,整体编译就不会出问题了。原理很简单:以上两个留空的设置会自动使用相应的全局设置,而这两个全局设置已经被包含在默认的全局查找路径中了。

我决定把这个设置作为公司的标准设置。

-------------------------------------------------------------------

以下附录是delphi相关文件后缀的含义,摘自这里

.dcu: (delphi compiled unit)源代码编译之后的输出文件,一个源代码文件对应一个dcu文件,只有源代码文件被修改之后才会重新编译,用于加速编译过程。

.dfm: (delphi form)和pas文件配合,定义界面。

.dcp: 二进制映像文件,包含符号信息和ide需要的其他附加信息,ide构建工程的时候需要这个文件。

.bpl或者.dpl:设计时包或者运行时包。其实是一个加入了delphi特性的dll文件。

posted on 2007-10-16 16:14  老翅寒暑  阅读(8607)  评论(0编辑  收藏  举报

导航