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

Delphi包装问题:包装单位必须仅参考包装单位..(E2411)

发布时间:2020-12-15 04:16:59 所属栏目:大数据 来源:网络整理
导读:我得到的错误是这样的: [DCC致命错误] myunit3.pas(244):E2411包B_Dsgn中的单元XBAT指的是在任何包中都找不到的单元QBEE.打包单元必须仅指包装单元 我需要知道我遇到的这个错误确实意味着什么,如果可能的话,如何排除故障并解决这些问题,特别是当错误消息中
我得到的错误是这样的:

[DCC致命错误] myunit3.pas(244):E2411包B_Dsgn中的单元XBAT指的是在任何包中都找不到的单元QBEE.打包单元必须仅指包装单元

我需要知道我遇到的这个错误确实意味着什么,如果可能的话,如何排除故障并解决这些问题,特别是当错误消息中陈述的事实不正确时(单位实际上指的是其他有效包中的其他单位) ).

这些问题涉及包依赖性.我有一个有趣的问题,一系列的三个设计时和三个运行时包相关如下:

最奇怪的是,每次清理和重建时,我都会在错误中获得不同的单位名称. (上面显示为XBAT单位是指单位QBEE).

另一个奇怪的事情是它指的是处于顶级依赖关系的单元,并且是已经构建的包的一部分.

脚步;

>编译A,它的工作原理.
>编译A_Dsgn,它的工作原理.
>编译B,它可以工作.
>编译B_Dsgn,它的工作原理.
>编译C,它因E2411错误而失败.

因为我怀疑任何人都可以告诉我如何解决这个问题,我正在寻找解决包中复杂依赖问题的步骤.上述错误的字面含义表明,例如,我应该有一个关于隐式链接单元的相应消息,我没有.我已将所有隐式使用的单元添加到基础包A和B中,因此不会生成隐式单元警告.

我的下一个想法是为每个包分离DCU输出文件夹,以防止DCU输出混淆编译器.现在我甚至无法构建软件包.

更新我尝试使用Explicit Rebuild和Rebuild as Needed选项.我发现此错误与启用“需要重建”有关.当它关闭时,软件包会因其他错误而失败,这些错误更重要.我发现奇怪的是,编译器会发出奇怪的错误,可以根据需要关闭Rebuild来禁用它们.有什么想法发生了什么?

更新2通过打开或关闭显式重建无法解决基本的基础问题.我得到了令人讨厌的运行时/设计时包问题,而不是出现这个错误,导致一组无法同时加载的包. (无法加载包foo,因为它包含单元栏,它也在包bat中.你想在下次加载项目时尝试加载这个包吗?).

解决方法

我怀疑它是一个模糊的编译器错误.

我经历过的项目至少有4级依赖运行时包:

PackageA< - PackageB< - PackageC< - PackageD

E2411 Unit ‘%s’ in package PackageD refers to unit ‘%s’ which is not
found in any package. Packaged units must refer only to packaged units.

我发现唯一有效的解决方案是使包A,B和C永不构建(即显式构建)包,并使用Project Dependencies来强制执行构建顺序.我不得不让所有三个永远不会建立,否则我会得到

E2220 Never-build package ‘%s’ requires always-build package ‘%s’

我知道它可能不是您正在寻找的答案,但它确实存在.

顺便说一句,这在Delphi 2009中发生在我身上.

(编辑:李大同)

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

    推荐文章
      热点阅读