如何加载两个同名但位于不同文件夹中的包?
例子:
/src/alpha/foopackage.ads
/src/beta/foopackage.ads
然后我想使用 foopackages 使用:
with alpha.foopackage;
with beta.foopackage;
此外,如果您对在 Ada 中组织项目有任何其他提示,请写信。网上关于 Ada 中项目组织的信息并不多。
如何加载两个同名但位于不同文件夹中的包?
例子:
/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,请参阅使用 gnatname 处理任意文件命名约定、使用其他文件名或替代文件命名方案。