Ada GNAT GPS无法确定要构建的目标

Ada GNAT GPS无法确定要构建的目标,ada,gnat-gps,Ada,Gnat Gps,我正在处理一个将要生成和执行的自定义项目文件,但我得到了这组警告(或错误,我不确定)。在“全部清除”之后,然后单击“生成->项目->全部生成”以打开“全部生成”对话框: [2015-01-22 23:30:39] Could not determine the target to build. [2015-01-22 23:30:39] Could not expand argument in command line: %T [2015-01-22 23:30:39] Build comman

我正在处理一个将要生成和执行的自定义项目文件,但我得到了这组警告(或错误,我不确定)。在“全部清除”之后,然后单击“生成->项目->全部生成”以打开“全部生成”对话框:

[2015-01-22 23:30:39] Could not determine the target to build.
[2015-01-22 23:30:39] Could not expand argument in command line: %T
[2015-01-22 23:30:39] Build command not launched.
在单击Execute开始构建之前,消息窗口中会显示这些消息(以红色文本显示)。当我单击Execute时,构建成功完成,程序运行

“全部生成”对话框在“选项”对话框中包含以下内容:

%建筑商%eL-p%PP%X-k-s-d

这意味着什么?为什么要这样做

如果有帮助,以下是项目文件:

  project LogBuffer01 is

  for Source_Dirs use ("src", "src\utilities");
  for Object_Dir use "obj";
  for Exec_Dir use "exe";
  for Main use ("abt_log_buffer_main_b.ada");

  package Naming is
     for Spec_Suffix ("ada") use "_s.ada";
     for Body_Suffix ("ada") use "_b.ada";
     for Spec ("abt_mirror_specs") use "abt_mirror_specs_s.ada";
     for Spec ("abt_log_buffer_types") use "abt_log_buffer_types_s.ada";
     for Spec ("abt_log_buffer") use "abt_log_buffer_s.ada";
     for Body ("abt_log_buffer") use "abt_log_buffer_b.ada";
     for Spec ("abt_log_buffer_rom_acess") use "abt_log_buffer_rom_access_s.ada";
     for Body ("abt_log_buffer_rom_acess") use "abt_log_buffer_rom_access_b.ada";
     for Spec ("screen_output") use "screen_output_s.ada";
     for Body ("screen_output") use "screen_output_b.ada";
  end Naming;

  package Pretty_Printer is
     for Default_Switches ("ada") use ("-i5");
  end Pretty_Printer;

  package Compiler is
        for Default_Switches ("ada") use ("-gnat83");
  end Compiler;

  package Builder is
     for Default_Switches ("ada") use ("");
  end Builder;

  package Check is
     for Default_Switches ("ada") use ("-d");
  end Check;

  end LogBuffer01;

定义了构建器的含义。翻译您的命令字符串毫无意义,只需说%builder会翻译为gnatmake,因为您只编译Ada。描述了gnatmake的开关

顺便说一句,我有这个包生成器:

for Default_Switches ("ada") use ("-g", "-C", "-s");
但在另一个正常工作的项目中,我

for Default_Switches ("ada") use ();

不确定Builder.Default\u开关中的空字符串。你需要有那些规范和主体定义,以及规范后缀,主体后缀吗?如果您指定了%T,我想它会被--target=arch供应商操作系统取代,但我不知道GPS为什么要这样做。显然,命令行生成器很高兴!哪个版本的GPS?哪个操作系统?(我猜是窗户)。