关于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文件。

公众号:老翅寒暑
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了