AWS for Ada的安装问题

som*_*me1 3 installation ada

我今晚第一次在Macbook上安装了Ada和AWS.

安装似乎一切都很成功,但我感觉AWS没有安装到正确的目录.

GNAT位于/ usr/local/gnat中.

AWS makefile.conf说,

AWS will be installed under $(prefix). Update this variable to point to
the install directory. By default, it is set to the current GNAT root
directory to have AWS project files automatically available.
Run Code Online (Sandbox Code Playgroud)

所以我没有改变目标.

但是当我尝试从系统中除AWS demos文件夹之外的任何地方编译hello_world时,我收到此错误:

~/projects/ada:gnatmake hello.adb
gcc -c hello.adb
hello.adb:1:06: file "aws.ads" not found
hello.adb:2:06: file "aws.ads" not found
hello.adb:3:06: file "aws.ads" not found
hello.adb:4:06: file "aws.ads" not found
gnatmake: "hello.adb" compilation error
Run Code Online (Sandbox Code Playgroud)

如何确保AWS已正确安装,或者如果不正确则移动它?

Sim*_*ght 6

答案(好吧,更多的是对知情人士的暗示)在于"让AWS项目文件自动可用".

在GNAT上下文中,"项目文件"表示一种类型的文件,.gpr它告诉构建器(gnatmakegprbuild)在何处查找源文件,如何编译它们,以及在何处查找"此"项目所依赖的库.

创建hello.gpr:

with "aws";
project Hello is
   for Main use ("hello.adb");
end Hello;
Run Code Online (Sandbox Code Playgroud)

(那是非常小的)然后

with AWS;
with Ada.Text_IO;
procedure Hello is
begin
   Ada.Text_IO.Put_Line ("AWS version is " & AWS.Version);
end Hello;
Run Code Online (Sandbox Code Playgroud)

用.编译

gprbuild -P hello.gpr
Run Code Online (Sandbox Code Playgroud)

输出

AWS version is 2.10.0w
Run Code Online (Sandbox Code Playgroud)

有关于gprbuildgnatmake的在线信息(gnatmake已被取代gprbuild); 您安装的GNAT(子目录)中可能存在信息${prefix}/share/doc.