如何加载两个名称相同但位于单独文件夹中的软件包?
例子:
/src/alpha/foopackage.ads
/src/beta/foopackage.ads
然后,我想通过以下方式使用foopackages:
with alpha.foopackage;
with beta.foopackage;
另外,如果您有关于在Ada中组织项目的其他提示,请写信。网上的Ada中没有太多有关项目组织的信息。
最佳答案
您已经解决了问题!
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。