5

我使用 Linux 薄荷。使用“sudo apt-get install gnat”安装 gnat 以使用 Ada 程序。
创建了一个简单的 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\ 程序
$ gnatmake hello.adb
gcc-4.4 -c hello.adb
gnatbind -x hello.ali
gnatlink hello.ali
$ hello
程序 'hello' 可以在以下包中找到:
* hello
* hello-debhelper
尝试:sudo apt-get install
$ ./hello
bash: ./hello: Permission denied

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

很少有网站说,在“gnatmake hello.adb”之后只输入“hello”,但它不起作用,
很少有人说,在“gnatmake hello.adb”之后尝试“./hello”,但这也不起作用?

接下来是什么?请帮忙。。

4

3 回答 3

7

不要/media/disk1/ada\ programs在您(显然)没有足够权限的目录中构建。相反,在你的主目录中的某个地方构建~,你确实有权限。GNAT 可执行文件通常安装/usr/binPATH.

$ 哪个 gnatmake
/usr/bin/gnatmake
$ 回声 $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
$光盘~
$ gnatmake 你好
gcc-4.6 -c hello.adb
gnatbind -x hello.ali
gnatlink hello.ali
$ ./你好
你好世界!
于 2013-01-16T15:02:21.233 回答
3

你的编译过程很好。正如 Marc C 所说,您通常不需要关心执行权限(chmod命令)。GNAT 应该解决这个问题。

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

于 2013-01-16T14:41:12.273 回答
2

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

$ chmod a+x hello

并运行它:

$ ./hello
于 2013-01-16T14:13:41.417 回答