首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使gprbuild默认为并行生成?

使gprbuild默认为并行生成?
EN

Stack Overflow用户
提问于 2014-05-17 23:17:24
回答 1查看 426关注 0票数 3

如何使gprbuild默认为并行构建?它不再是1990年了,而且我有所有这些备用核,并且不想继续在命令行中添加-j0

根据我对文档的理解,这应该是可行的:

代码语言:javascript
复制
package Builder is
    for Default_Switches("Builder") use ("-j0");
end Builder;

...but它没有;它只是被忽略了。我在网络上看到了Default_Switches("Ada")应该工作的地方,但是只会将--jobs选项传递给GNAT,这当然是错误的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-18 06:51:55

gprbuild源中,除了-j之外,我看不到任何可以控制作业数量的地方。

然而,文档建议你使用一个“聚合项目”来达到你想要的效果。我将一个项目文件封装在一个聚合中,如下所示:

代码语言:javascript
复制
aggregate project Gnat_Util_Aggregate is
   for Project_Files use ("gnat_util.gpr");
   package Builder is
      for Switches (others) use ("-j0");
   end Builder;
end Gnat_Util_Aggregate;

在这个13“Macbook Pro上建立的普通项目的时代是

代码语言:javascript
复制
   70.17 real        66.33 user         2.85 sys

以及聚合项目构建。

代码语言:javascript
复制
   35.46 real       119.05 user         4.80 sys

(我不知道“用户”值是什么意思!但我检查了“真实”值,它们与我的手表相匹配。)

我在上面的GPRBuild文档链接上报告了错误(它说for Switches (other),应该是others)到AdaCore。

更新:跟随大卫合理的抱怨,凭直觉,我在我的普通项目中尝试了这个技巧,它成功了。我还是不知道消息来源是怎么回事。

对于信息,无文档化的开关-dm报告最大的同时编译次数(在gnatmakegprbuild中)。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23717035

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档