Ada路径查询——这次使用gnatmake



尝试在ada-util中构建示例代码。所以我运行

gnatmake json.adbinada-util/samples/目录

但是我得到以下错误:

gnatmake json.adb 
gcc -c json.adb
json.adb:21:06: file "util.ads" not found
json.adb:23:06: file "util.ads" not found
json.adb:23:06: "Json (body)" depends on "Mapping (spec)"
json.adb:23:06: "Mapping (spec)" depends on "Util (spec)"
json.adb:24:06: file "util.ads" not found
json.adb:25:06: file "util.ads" not found
json.adb:26:06: file "util.ads" not found
gnatmake: "json.adb" compilation error

所以我的路径显然有问题,因为我已经安装了ada-util,我可以确认util.ads在安装目录中。现在,很明显这里出了问题,因为这不是我最近第一次和Ada发生PATH问题了。它应该安装在哪里?目前它在/opt/GNAT/2020/include/utilada_core.static/util.ads下,GNAT安装在那里。

问题:

  1. 如果不在这里,它应该在哪里?
  2. 我是否必须告诉gnatmake它在哪里,如果是这样,如何-在文档中看不到
  3. 如果是这样,为什么我要告诉gnatmake它是在哪里给我按照安装说明-这是一个错误在安装过程中,还是其他的东西正在发生?
  1. 找我,就像图书馆在合适的地方。

  2. 如果你猜对了,你必须告诉它库的位置。据我所见,在项目的根目录中,有文件samples.gpr。因此,如果要构建示例,必须在项目的根目录下执行:

    gnatmake -P samples.gpr
    

    或者,如果您在samples目录中(如在示例中):

    gnatmake -P ../samples.gpr
    

    这将构建所有示例。

  3. 默认情况下,gnatmake无法找到所需的库,就像GCC无法为C/c++项目找到额外的库一样。它通常通过GNAT项目文件(这些具有.gpr扩展名的文件,简单方法)或通过编译标志(困难方法)或Makefiles完成。Ada的编译过程类似于C/c++。它还需要大量的标志、设置,有时,对于一个更大的项目来说,它不需要开箱即用。:)

最新更新