如何加载两个名称相同但位于单独文件夹中的软件包?
示例:
/src/alpha/foopackage.ads
/src/beta/foopackage.ads
然后我想使用foopackages:
with alpha.foopackage;
with beta.foopackage;
另外,如果您有关于在Ada组织项目的任何其他提示,请写信。关于Ada网上项目组织的信息不多。
答案 0 :(得分:4)
你已经解决了这个问题!
src / alpha / foopackage.ads包含:
package alpha.foopackage is
...
end alpha.foopackage;
而src / beta / foopackage.ads包含:
package beta.foopackage is
...
end beta.foopackage;
如果您正在使用GNAT及其默认命名约定,那么将遇到临时问题。此命名约定要求文件分别命名为alpha-foopackage.ads和beta-foopackage.ads。
如果您坚持使用foopackage.ads作为文件名,则可以解决此约定。使用GNAT,请参阅Handling Arbitrary File Naming Conventions with gnatname,Using Other File Names或Alternative File Naming Schemes。
答案 1 :(得分:4)
这几乎与导致this answer的问题重复。
然而,还有另一个与命名有关的问题,即GNAT(我认为你使用的是GNAT?)有一个default file naming convention(有一些方法可以覆盖这个约定,但是你需要一个好的理由打扰)。
因此,您的源文件,无论您选择放入哪个目录,都应分别命名为alpha-foopackage.ads
和beta-foopackage.ads
。