zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    [SCOI2013]火柴棍数字(背包)
    [NOI2015]品酒大会
    后缀数组小结
    [POI2009]Slw
    [POI2009]Wie
    [POI2008]账本BBB
    ant语法和规范
    使用Hudson进行持续集成
    gnu make
    可信执行环境(TEE)介绍
  • 原文地址:https://www.cnblogs.com/pangblog/p/3295310.html
Copyright © 2011-2022 走看看