加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Delphi编译和构建有什么区别?

发布时间:2020-12-15 10:10:02 所属栏目:大数据 来源:网络整理
导读:使用Delphi-6有两种选择:构建和编译. 我知道当我运行一个程序时,它只编译已经更改的文件,并为没有的文件使用DCU.当我单击构建显然它重建了DCU. 我一直在想的是,当我做一个程序发布(更改构建设置,条件变量等),我可以编译,还是我必须做一个完整的构建? 如果
使用Delphi-6有两种选择:构建和编译.

我知道当我运行一个程序时,它只编译已经更改的文件,并为没有的文件使用DCU.当我单击构建显然它重建了DCU.

我一直在想的是,当我做一个程序发布(更改构建设置,条件变量等),我可以编译,还是我必须做一个完整的构建?

如果我不做全面的建设,会发生什么,有什么一致性吗?

解决方法

编译时,编译时?

当.pas源文件的日期戳记改变时,编译器只会自动重新编译单元(1,2).

在项目的其他状态更改(指令,调试或其他编译器设置等)中,编译器将不会自动重新编译.那就是当你需要强制一个构建.

当.inc或其他包含($I)文件(3))更改(3)时,还需要强制重建,因为它们的日期戳记未被选中.

因此,总而言之,除了单位.pas文件之外的任何内容,您都需要进行构建.

建筑有一些奇怪的情况.大部分的结果出现在“找不到单位xxx”错误

>一个是项目中单位的路径错误,或者在工作目录错误时使用相对路径. (见Delphi debug a wrong unit)
(我不完全相信这个,这是一个假设).由于CRC(1),一个.dcu被重新编译,但是新编译的dcu被放在一个不同的目录中.这不是当前编译的问题(因为正确的dcu已经被加载),而是在随后的编译(例如依赖程序包)中,再次找到旧的dcu文件,而不是 – >错误.如果有疑问,总是通过递归删除所有DCU清理您的构建目录
>在.dpr文件中提到了错误的路径

(1)如果Delphi就像FPC一样,.dcu包含所有dcu的接口部分的CRC.这可以用来检查是否还需要重新编译.例如.由于文件系统操作(移动dcu的)

(2)对于专家,也看看{$implicitbuild xx}

(3)与德尔福相反,FPC确实重建了.inc的变化. FPC项目在内部大量使用.inc文件,这一变化已经在Delphi支持之前.因此,将“将”inc文件复制到任何目录中的软件包将无法使用FPC进行编译,因为它们的大小和CRC通常略有不同. Indy(10)是一个很好的例子.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读