如何加载两个名称相同但位于单独文件夹中的软件包?

例子:

/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 gnatnameUsing Other File NamesAlternative File Naming Schemes

10-08 19:38