我有一个德尔福项目组,由三个项目组成:Sales
、Inventory
和Orders
。
在Sales项目中,有一个名为Customers.pas
的单元。Inventory
项目有一个名为Products.pas
的单元,用于从Sales
项目导入Customers
。Orders
项目在Orders.dpk
文件的requires
子句中同时列出了Sales
和Inventory
。并且Customers
也被导入到OrdersUnit
中。
但是,当我尝试编译该项目时,我得到了以下错误:
[dcc32错误]订单. dpk(42):E2199 Package "销售"和"库存"均包含单位"客户"
什么可能导致这个错误,什么是可能的解决方案?我不能移动,删除或重命名代码库中的任何文件。
1条答案
按热度按时间9bfwbjaz1#
从错误中可以清楚地看到,Sales和Inventory包都链接到了它们自己的
Customers
单元副本中,尽管您声称“* Inventory项目...从Sales项目导入了Customers "。因此,当Orders项目在两个包中链接时,最终会得到
Customers
单元的两个单独副本,这是不允许的。Customers
单元必须仅在 * 单个 * 包中实现。任何其他项目要在运行时 * 在同一进程中使用该单元, 必须从该包导入该单元。您的Inventory项目显然没有正确导入
Customers
单元。例如,如果从Sales项目编译的Customers.dcu
在Inventory项目的搜索路径上可见,则编译器将在编译Inventory项目时使用该DCU,而不是从Sales包导入单元。请确保情况并非如此。