【问题标题】:GNAT GPS Could not determine target to buildGNAT GPS 无法确定要构建的目标
【发布时间】:2017-02-16 03:35:59
【问题描述】:

我正在努力使用将构建和执行的自定义项目文件,但我收到了这组警告(或错误,我不确定)。在 Clean All 之后,然后当我单击 Build -> Project -> Build All 以打开 Build All 对话框: p>

[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 时,构建成功完成并且程序运行。

Build All 对话框在选项对话框中有这个:

%builder %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.Default_Switches 中的空字符串。您是否需要拥有那些 Spec 和 Body 定义以及 Spec_Suffix、Body_Suffix?我猜如果你指定了 %T 会被 --target=arch-vendor-os 代替,但我不知道为什么 GPS 想要。显然命令行构建器很高兴!哪个版本的 GPS?哪个操作系统? (我猜是 Windows)。

标签: ada gnat-gps


【解决方案1】:

构建器的含义定义为here。我翻译你的命令字符串没有意义,我只想说 %builder 翻译成 gnatmake 因为你只编译 Ada。 gnatmake 的开关被描述为here

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

for Default_Switches ("ada") use ("-g", "-C", "-s");

但在另一个正常工作的项目中,我有

for Default_Switches ("ada") use ();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-07-16
    • 1970-01-01
    • 2019-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-07
    相关资源
    最近更新 更多