我继承了一个Delphi项目,其中大部分内容都是在单独的Git存储库(git子模块)中存在的包中完成的。如果没有子包(git子子模块),那就不会那么糟了。
最糟糕的是,一个git子模块在主项目中使用,并作为子模块的子模块:
MainProject -> Submodule1
MainProject -> Submodule2 -> Submodule1
MainProject -> Submodule3 -> Submodule1
现在我在Submodule1中的三个单元之间存在名称冲突。
我该怎么办?我怎样才能让Delphi忽略子包中存在的单位并使它只使用第一个嵌套级别的单位?
答案 0 :(得分:2)
没有“子包”。每个包都是一个独立的包。但我们假设您有以下设置:
如果unit2A
,unit2B
,unit3A
或unit3B
中的任何一个需要使用package1
中的单位,那么该包应位于requires
或package2
的{{1}}部分,但单位package3
,unit1A
或unit1B
应 < em> not 位于这些软件包的unit1C
部分,也不应该默默包含在内 - 如果发生这种情况,您会收到一条消息。
在上面的设置中,如果contains
和unitX
的{{1}}部分中的requires
不在package1
内,则会自动包含它。如果在多个包中发生这种情况,则会出现命名冲突。因此,您可以将其包含在package2
中,也可以从package2
添加package2
,或者将其放入自己的包中。
所以无论你做什么:
package3
部分)包包含单元A. 单元A不应直接包含。如果仍存在命名冲突,请重命名单位,直到每个名称都是唯一的。