Never-build package 'XXXX' requires always-build package 'EhLib70'

发布时间:2016-12-11 17:52:44 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"Never-build package 'XXXX' requires always-build package 'EhLib70'",主要涉及到Never-build package 'XXXX' requires always-build package 'EhLib70'方面的内容,对于Never-build package 'XXXX' requires always-build package 'EhLib70'感兴趣的同学可以参考一下。

            控件包使用了DbGridEh。Requies也加入了ehlib70.dcp就是编译时不通过,提示:      Never-build   package   'XXXX'   requires   always-build   package   'EhLib70'             最后解决了,需要在Project->Options里的Description里将BuildControl 选项设置成Rebuild as needed 这是程序包的互相依赖是的问题,假如程序包A依赖程序包B,如果B改变了A如何办?这就看你在编译程序包时候的Build   Control如何选择,如果选择Rebuild   as   needed那么这个包所依赖的任何单元只要一个改变它就会重新编译,如果选择Explicit   rebuild那么只有你选择重编译时候才会重建,一般情况下程序包比较稳定所以一般都选择这个选项。你这种情况就是B选择了Rebuild   as   need,A选择了Explicit   rebuild,这样B依赖的单元一改变B就被重建,但A间接依赖B所依赖的单元不被重建不符合逻辑,所以编译器禁止这样做,你只要把所有的程序包都设置为Explicit   rebuild就可以了 Delphi 出现Never-build package 'a' requires always-build package 'b'错误的解决方法: 1、原理:       两个BPL包,如果A包requires B包,那么A包与B包的Build Control 必须一致,或者A包为Rebuild as needed(Always-build),B包为Explicit rebuild(Never-build)。      原因是:如果A包为Explicit rebuild,B包为Rebuild as needed,就是说A包是很稳定的,不需要编译,但A包requires的B包却是常变的,要经常编译的。那么,当B包改变的时候,理应要更新,而A包是Explicit rebuild,所以A包还是不编译,那么造成A包的内容是旧的,最终造成包的更新失败,如果,当应用程序调用A包的时候,就出错了。所以在A包requires B包的情况下,不允许出现“A包为Explicit rebuild,B包为Rebuild as needed”这种组合。Delphi就提示Never-build package 'a' requires always-build package 'b'这个Error了。 2、解决方法:      要把两个包的 Project-> Option 里的 Description 面板里的 Build Control设在一致,一般情况下是 Rebuild as needed

上一篇:常见hash算法的原理
下一篇:Linux RedHat 6.3的下载地址

相关文章

相关评论