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
Never-build package 'XXXX' requires always-build package 'EhLib70'的更多相关文章
- 错误:Could not create the Android package. See the Output (Build) window for more details
错误:Could not create the Android package. See the Output (Build) window for more details. Mono For An ...
- 在spring添加注解时,第一行package报错configure build path
练习spring的ioc的注解的时候写上注解就会在第一行package报错configure build path. 用的spring4.2.4的jar包.经过上网查阅资料,可能是jar包冲突,解决办 ...
- 傻瓜式的go modules的讲解和代码,及gomod能不能引入另一个gomod和gomod的use of internal package xxxx not allowed
一 国内关于gomod的文章,哪怕是使用了百度 -csdn,依然全是理论,虽然golang的使用者大多是大神但是也有像我这样的的弱鸡是不是? 所以,我就写个傻瓜式教程了. github地址:https ...
- Eclipse项目导入Android Stuio 配置出现 Timeout waiting to lock buildscript class cache for build file 'H:\studioproject\Generic_SN\build.gradle'
Eclipse项目导入Android Stuio 配置出现 Error:Timeout waiting to lock buildscript class cache for build file ...
- Build step 'Execute shell' marked build as failure解决
今天jenkins构建时运行脚本报错如下: Build step 'Execute shell' marked build as failure 脚本没问题后来看了下原因是磁盘空间不足导致报错,清除下 ...
- TF42064: The build number already exists for build definition error in TFS2010
In TFS2008, deleting a build removes it from the database itself. If you delete a build called Build ...
- Jenkins Build step 'Execute shell' marked build as failure
问题出现: Jenkins一直都构建成功,今天突然报错:Jenkins Build step 'Execute shell' marked build as failure 问题原因: By defa ...
- 如何用TFS build definition添加自动建立nuget package 步骤
参考网址:https://www.visualstudio.com/en-us/docs/build/steps/package/nuget-packager https://docs.nuget.o ...
- angular package.json中start build
"start": "ng serve --host 0.0.0.0 --port 4200 --proxy-config proxy.conf.json", & ...
随机推荐
- 查看SQLServer数据库信息的SQL语句
--查看数据库中的表信息, --包括(表名,记录数,保留空间,使用空间,索引使用空间,未用空间) exec sp_MSForEachTable @precommand=N'create table # ...
- JAVA之GUI编程ACTION事件
package GUI; import java.awt.Button; import java.awt.FlowLayout; import java.awt.Frame; import java. ...
- ThinkPHP第二十二天(表单令牌、相对路径、扩展配置载入、$Think获取系统变量、$_SERVER('HTTP_REFERER')前页地址)
1.表单令牌开启配置 'TOKEN_ON'=>true 2.相对路径:在thinkphp中,存在单入口index.php,所以程序中的根目录都是以index.php所在的文件夹为根目录,故用./ ...
- php学习笔记(1)
1.引用文件的方法有两种:require 及 include require 的使用方法如 require("MyRequireFile.php"); .这个函数通常放在 PHP ...
- Mysql笔记之 -- replace()实现mysql 替换字符串
mysql 替换函数replace()实现mysql 替换字符串 mysql 替换字符串的实现方法: mysql中replace函数直接替换mysql数据库中某字段中的特定字符串,不再需要自己写函数 ...
- [LeetCode]题解(python):143-Reorder List
题目来源: https://leetcode.com/problems/reorder-list/ 题意分析: 给定一个链表L:L0→L1→…→Ln-1→Ln,改变链表的排序为: L0→Ln→L1→L ...
- python练习之list
请用索引取出下面list的指定元素: # -*- coding: utf-8 -*- L = [ ['Apple', 'Google', 'Microsoft'], ['Java', 'Python' ...
- Use eplipse to develop Python project
Source: This is the example how to use eclipse and python. http://www.360doc.com/content/15/0206/10/ ...
- Oracle 游标Cursor 的基本用法
查询 SELECT语句用于从数据库中查询数据,当在PL/SQL中使用SELECT语句时,要与INTO子句一起使用,查询的 返回值被赋予INTO子句中的变量,变量的声明是在DELCARE中.SELECT ...
- 电脑Win7如何取得文件管理所有权(提供各种GHOST版本的Windows)
电脑Windows7系统如何取得文件管理所有权?从 VISTA开始,微软对操作系统的安全性有了明显的提高,这样使得以前我们在XP下都可以打开或删除的文件(夹),无法在WIN7下进行操作.就算是在 Ad ...