Delphi 项目编译错误: Package “A”和“B”均包含装置“C”

ne5o7dgx  于 2023-03-02  发布在  其他
关注(0)|答案(1)|浏览(119)

我有一个德尔福项目组,由三个项目组成:SalesInventoryOrders
在Sales项目中,有一个名为Customers.pas的单元。Inventory项目有一个名为Products.pas的单元,用于从Sales项目导入CustomersOrders项目在Orders.dpk文件的requires子句中同时列出了SalesInventory。并且Customers也被导入到OrdersUnit中。
但是,当我尝试编译该项目时,我得到了以下错误:
[dcc32错误]订单. dpk(42):E2199 Package "销售"和"库存"均包含单位"客户"
什么可能导致这个错误,什么是可能的解决方案?我不能移动,删除或重命名代码库中的任何文件。

9bfwbjaz

9bfwbjaz1#

从错误中可以清楚地看到,Sales和Inventory包都链接到了它们自己的Customers单元副本中,尽管您声称“* Inventory项目...从Sales项目导入了Customers "。
因此,当Orders项目在两个包中链接时,最终会得到Customers单元的两个单独副本,这是不允许的。
Customers单元必须仅在 * 单个 * 包中实现。任何其他项目要在运行时 * 在同一进程中使用该单元,
必须从该包导入该单元。
您的Inventory项目显然没有正确导入Customers单元。例如,如果从Sales项目编译的Customers.dcu在Inventory项目的搜索路径上可见,则编译器将在编译Inventory项目时使用该DCU,而不是从Sales包导入单元。请确保情况并非如此。

相关问题