如何在 gprfile 中指定可执行文件的名称?它可以位于 gprfile 目录之上吗?

Tam*_*inn 3 ada gprbuild

这些信息可以在其他地方找到,但没有合并到这个特定的用例中,因此我觉得需要一个我(和其他人)可以参考的 stackoverflow 自我回答。如果我遗漏了什么,请随时添加您自己的答案。

project some_project is
   for Source_Dirs use ("src");
   for Object_Dir use "obj";
   for Main use ("main.adb");

   package Compiler is
      for Default_Switches ("ada") use ("-O1", "-gnatwae");
   end Compiler;
end some_project;
Run Code Online (Sandbox Code Playgroud)

我想让这个生成../some_program_name.exe. 如何指定该 gpr 项目将生成的可执行文件的名称?可以在上面的目录中吗?

Tam*_*inn 6

将其添加到您的 gpr 文件中:

for Exec_Dir use "..";
package Builder is
   for Executable ("main.adb") use "some_program_name";
end Builder;
Run Code Online (Sandbox Code Playgroud)

请注意,.exe如果您使用的是 Windows,则后缀会自动添加。

在同一个Builder包中,也可以只改变扩展名

for Executable_Suffix use ".elf";
Run Code Online (Sandbox Code Playgroud)

这些信息分散在GNAT 项目经理的 Adacore 文档中。