在过去的几周里,由于种种原因,我一直在进入阿达。但毫无疑问,关于我使用Ada的个人原因的信息超出了这个问题的范围。
截至有一天,我开始使用Windows版GNAT附带的gprbuild
命令,以便以与项目相关的方式管理我的应用程序的系统带来的好处。也就是说,能够基于每个项目定义某些属性,而不是自己手动设置编译阶段。
目前,在命名我的文件时,它们的名称基于grpbuild
的标准,尽管我可能非常错误。对于句点(在包结构中),-
放在文件名中,对于下划线,相应地放置_
。因此,名称为App.Test.File_Utils
的文件包的文件名为app-test-file_utils
:.ads
和.adb
。
在我指定的.gpr
项目文件中:
for Source_Dirs use ("app/src/**");
这样我就可以使用多个目录来存储我的文件,而不需要将它们全部放在同一个目录中。
然而,出现的问题是文件名往往会变得很长。因为我已经将文件放在基于文件包含的包名的目录中,所以我想知道是否有办法以某种方式让编译器理解可以从文件的目录名中检索包名。
即,我不希望将App.Test.File_Utils
'文件名命名为app-test-file_utils
,而是希望它位于app/test
目录下,名称为file_utils
。< / p>
这是可行的,还是我会被最终不得不按照app-test-some-then-one-has-more_files-another_package-knew-test-more-important_package.ads
的名字命名我的文件的恐怖?当然,我并没有错过任何关于如何实际构建Ada应用程序的内容。
我尝试在package Naming
configuration of the gpr
files in the documentation中寻找答案,但无济于事。此外,我一直在浏览网页以获取信息,但我认为通过Stackoverflow获得帮助可能会更好,以便将来可能会遇到此问题的其他人(首先认为这是一个问题)也可能会得到帮助
任何正确方向的指针都会非常有用!
答案 0 :(得分:4)
在top-secret GNAT documentation中,有一个关于如何使用非默认文件名的说明。这是一项很大的努力。您可能会放弃,使用默认名称,并将它们全部放在一个目录中。
答案 1 :(得分:1)
您还可以使用GPS简化大部分工作,并在将文件添加到源目录时让它构建项目文件。