0

我刚开始在 Ada 中编程,但在执行某些文件 .adb 时遇到了问题。

with Ada.Text_IO, Ada.Integer_Text_IO; 
use Ada.Text_IO, Ada.Integer_Text_IO; 
procedure Trapeze(A:integer;B: Integer;C :Integer;D: Integer) is
   procedure Traceligne(C:Character;X:Integer) is 
   begin 
      for I in 1 .. X loop 
         Put("C"); 
   end loop; 
   end Traceligne; 
   H:Integer:=C; 
   Alpha:Integer:=D; 
   Decd:integer:=A; 
   Decg:integer:=B;

begin 
   for I in 1 .. H loop
      Traceligne(' ',Decd); 
      Traceligne('*',Alpha); 
      Traceligne(' ',Decg); 
      Decd:=Decd-Integer(Decd*I/H); 
      Decg:=Decg-Integer(Decg*I/H);
      Alpha:=Alpha+Integer(Decd*I/H)+Integer(Decg*I/H);    
   end loop;
get(x);
Trapeze(1,2,3,4) 
end Trapeze;

我有这个代码错误:

第 1 行:with:找不到命令。

我不知道这条消息的原因。

PS:对于我的计算机识别with Ada.Text_IO命令的某些程序,问题很简单,而对于其他一些程序,它给了我之前提到的错误,我不知道为什么。事实上,我发现真正的问题在于它编译的文件的编译,但在 gcc 中停止并且不会继续 gnatbind 和 gnatlink 我希望你有一些建议。

4

1 回答 1

1

command not found消息的原因是您正在尝试执行该trapeze.adb文件,而不是从它构建的可执行程序(trapeze或者,在 Windows 上trapeze.exe)。

GNAT 没有构建可执行程序的原因是,在 GNAT 中,主程序必须是无参数的过程;大概你的一些测试程序是无参数的,但这个不是。

如果您希望能够从命令行提供参数,如

$ ./trapeze 1 2 3 4

那么您需要使用Ada.Command_Line来检索它们。

于 2013-10-06T08:05:43.257 回答