Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 为什么编译器不能在我的包中包含外部DCU?_Delphi_Delphi Xe - Fatal编程技术网

Delphi 为什么编译器不能在我的包中包含外部DCU?

Delphi 为什么编译器不能在我的包中包含外部DCU?,delphi,delphi-xe,Delphi,Delphi Xe,我有一个错误: E2411包%s中的单位%s指的是在中找不到的单位%s 任何包裹。成套设备必须仅指成套设备(德尔福) Delphi帮助非常有用,它说: 没有关于此错误或警告的进一步信息 为什么我不能引用一个不属于包的单元 更新: 永无止境的故事:将文件放入自己的包中会破坏其他内容: 这就是为什么我不想将文件放在它自己的包中。您不能引用不属于包的单元,因为包需要是一个自包含的软件。这意味着包必须包含它使用的所有单元,或者在其requires子句中通过包提供这些单元 要解决此错误,您可以 将单元包

我有一个错误:

E2411包%s中的单位%s指的是在中找不到的单位%s 任何包裹。成套设备必须仅指成套设备(德尔福)

Delphi帮助非常有用,它说:

没有关于此错误或警告的进一步信息

为什么我不能引用一个不属于包的单元

更新:

永无止境的故事:将文件放入自己的包中会破坏其他内容:
这就是为什么我不想将文件放在它自己的包中。

您不能引用不属于包的单元,因为包需要是一个自包含的软件。这意味着包必须包含它使用的所有单元,或者在其requires子句中通过包提供这些单元

要解决此错误,您可以

  • 将单元包含在您正在构建的包中,或
  • 将包含该单元的软件包添加到正在构建的软件包的requires列表中

    • 你的问题似乎是

      为什么编译器会发出此错误

      如果您指的是A单元,则需要解决对A单元的提及。如果在当前包或requires子句中的另一个包中找不到它,那么编译器将无法继续

      你还问:

      为什么编译器不能在我的包中包含外部DCU


      您只需在.dpk文件的contains子句中将设备添加到软件包中。

      Hi-David。我已经看到了消息。但我想知道这是为什么。为什么编译器不能在我的包中包含一个外部DCU?@DavidHeffernan好吧,需要澄清一下。就目前而言,它非常接近循环定义。将我需要的单元放在自己的包中会破坏我的Delphi:因此,我认为这不是“我无法编译该文件”的问题,而是“我不(不应该)编译该文件”。@salter:hmm,是的,我想您可以这样说,因为编译器不会处理隐式包含的单元(用于但未显式包含在任何必需的包或正在构建的包中)