5

Linuxmintを使用しています。「sudoapt-getinstallgnat」を使用して、Adaプログラムと連携するようにgnatをインストールしました。
簡単なHelloWorldプログラムを作成しました。

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

保存し

た場所から実行して、ターミナルを開き、次のように入力して取得しました。

$ cd / media / disk1 /ada\プログラム
$gnatmakehello.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:アクセスが拒否されました

プログラムの出力を確認するにはどうすればよいですか?
どこがうまくいかないのですか?

「gnatmakehello.adb」の後に「hello」と入力するだけで機能しないと言ったウェブサイトはほとんどなく、
「gnatmake hello.adb」の後に「./hello」を試してみると言ったウェブサイトもほとんどありませんが、それも機能しませんでしたか?

次は何?plsを助けます。

4

3 に答える 3

7

(明らかに)適切な権限/media/disk1/ada\ programsがないディレクトリを構築しないでください。代わりに、アクセス許可があるホームディレクトリのどこかにビルドしてくださいGNAT実行可能ファイルは通常、にインストールされます。これはおそらくすでににあります。~/usr/binPATH

$どの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
こんにちは世界!
于 2013-01-16T15:02:21.233 に答える
3

コンパイルプロセスは問題ありません。chmodMarc Cが言うように、通常は実行権限(コマンド)を気にする必要はありません。GNATがこれを処理する必要があります。

プログラムを実行するには、単にと入力することはできませんhello。それは新しいプログラムです:あなたはちょうどそれを作りました、そして実際にあなたの端末はあなたが何を意味するのか理解するにはあまりにも愚かです。プログラムがファイルシステムのどこにあるかを彼に伝える必要があります。それが入力のポイントです./hello。基本的には、「現在のディレクトリでhelloというプログラムを探す」という意味です。したがって、別のディレクトリに移動した場合は機能しません。

于 2013-01-16T14:41:12.273 に答える
2

実行可能ファイルに実行権限を割り当てる必要があります:

$ chmod a+x hello

そしてそれを実行します:

$ ./hello
于 2013-01-16T14:13:41.417 に答える