如何使gprbuild默认为并行构建?它不再是1990年了,而且我有所有这些备用核,并且不想继续在命令行中添加-j0。
根据我对文档的理解,这应该是可行的:
package Builder is
for Default_Switches("Builder") use ("-j0");
end Builder;...but它没有;它只是被忽略了。我在网络上看到了Default_Switches("Ada")应该工作的地方,但是只会将--jobs选项传递给GNAT,这当然是错误的。
发布于 2014-05-18 06:51:55
在gprbuild源中,除了-j之外,我看不到任何可以控制作业数量的地方。
然而,文档建议你使用一个“聚合项目”来达到你想要的效果。我将一个项目文件封装在一个聚合中,如下所示:
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上建立的普通项目的时代是
70.17 real 66.33 user 2.85 sys以及聚合项目构建。
35.46 real 119.05 user 4.80 sys(我不知道“用户”值是什么意思!但我检查了“真实”值,它们与我的手表相匹配。)
我在上面的GPRBuild文档链接上报告了错误(它说for Switches (other),应该是others)到AdaCore。
更新:跟随大卫合理的抱怨,凭直觉,我在我的普通项目中尝试了这个技巧,它成功了。我还是不知道消息来源是怎么回事。
对于信息,无文档化的开关-dm报告最大的同时编译次数(在gnatmake和gprbuild中)。
https://stackoverflow.com/questions/23717035
复制相似问题