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

  • 相关阅读:
    Linux服务安全之TcpWrapper篇
    通过cmd命令到ftp上下载文件
    常见tcp端口
    cmd常用命令
    TeeChart的最小步长和最大步长
    根据指定的commit查找对应的log
    WCF
    在IIS中某一个网站启用net.tcp
    wcf 远程终结点已终止该序列 可靠会话出错
    IIS中的Application.CommonAppDataPath
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3293758.html
Copyright © 2011-2022 走看看