在linux终端中运行Ada程序

时间:2013-01-16 13:51:56

标签: linux ada gnat

我使用Linux薄荷。安装gnat与Ada程序一起使用,使用“sudo apt-get install gnat” 创建了一个简单的hello world程序:

with Ada.Text_IO;
procedure Hello is
begin
    Ada.Text_IO.Put_Line("Hello, world!");
end Hello;

并将其保存为“hello.adb”

尝试从保存位置运行它,打开终端并键入&得到以下:

  

$ cd / media / disk1 / ada \ programs
$ gnatmake hello.adb
gcc-4.4   -c hello.adb
gnatbind -x hello.ali
gnatlink hello.ali
$ hello
可以在下面找到'hello'程序   包:
*你好
* hello-debhelper
试试:sudo apt-get   安装
$ ./hello
bash:./ hello:   许可被拒绝

我该怎么做才能看到程序的输出?
哪里出错了?

很少有网站说过,只需在“gnatmake hello.adb”之后键入“hello”但它不起作用, 很少有人说,在“gnatmake hello.adb”之后尝试“./hello”,但那也没有用呢?

下一步是什么?帮帮忙..

3 个答案:

答案 0 :(得分:6)

不要构建/media/disk1/ada\ programs,一个您(显然)没有足够permission的目录。而是在您的主目录~中的某个位置构建,的权限。 GNAT可执行文件通常安装在/usr/bin中,可能已经在PATH中。

$ which gnatmake
/usr/bin/gnatmake
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
$ cd ~
$ gnatmake hello
gcc-4.6 -c hello.adb
gnatbind -x hello.ali
gnatlink hello.ali
$ ./hello 
Hello, world!

答案 1 :(得分:3)

您的编译过程没问题。正如Marc C所说,您通常不需要关心执行权限(chmod命令)。 GNAT应该照顾好这一点。

要执行您的程序,您不能只键入hello。这是一个新的计划:你刚刚创造了它,实际上你的终端太愚蠢了,无法理解你的意思。你必须告诉他你的程序在文件系统中的位置。这就是键入./hello的重点。基本上,它意味着“在当前目录中查找名为hello的程序”。因此,如果您移动到另一个目录中,它将无法工作。

答案 2 :(得分:2)

您必须为可执行文件分配执行权限:

$ chmod a+x hello

并运行它:

$ ./hello