我使用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”,但那也没有用呢?
下一步是什么?帮帮忙..
答案 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