Delphi项目编译错误:Packages 'A' and 'B' both contain unit 'C'

问题描述 投票:0回答:1

我有一个由三个项目组成的 Delphi 项目组:

Sales
Inventory
Orders

在销售项目中,有一个名为

Customers.pas
的单元。
Inventory
项目有一个名为
Products.pas
的单元,它从
Customers
项目导入
Sales
Orders
项目在
Sales
文件的
Inventory
子句中同时列出了
requires
Orders.dpk
Customers
也被导入到
OrdersUnit
.

但是,当我尝试编译项目时,出现以下错误:

[dcc32 错误] Orders.dpk(42): E2199 包“销售”和“库存”都包含单位“客户”

什么可能导致此错误,可能的解决方案是什么?我无法移动、删除或重命名代码库中的任何文件。

delphi compiler-errors package namespaces delphi-10.2-tokyo
1个回答
0
投票

从错误中可以清楚地看出,销售和库存包都链接到它们自己的

Customers
单元副本中,尽管您声称“库存项目......从销售项目导入客户”。

因此,当 Orders 项目链接到两个包中时,它最终会得到 2 个单独的

Customers
单元副本,这是不允许的。

Customers
单元只能在single 包中实现。任何其他想要使用它的项目都必须从该包中导入它。

您的 Inventory 项目显然没有正确导入

Customers
单位。例如,如果从 Sales 项目编译的
Customers.dcu
在 Inventory 项目的搜索路径上可见,则编译器将使用该 DCU 而不是从 Sales 包中导入该单元。确保情况并非如此。

© www.soinside.com 2019 - 2024. All rights reserved.