【发布时间】:2011-07-22 00:42:46
【问题描述】:
使用 XCode 构建 C++ 项目时如何更改并行编译次数?
我不是在谈论分布式构建,而是在单个计算机上同时编译来自单个项目的一组源文件。 (目前使用 Xcode 3.2.4)
谢谢
【问题讨论】:
-
有关信息,我的四核上的构建时间太长了。将此值从 8 减少到 4 后,构建时间变得更加合理。
标签: c++ xcode build parallel-processing
使用 XCode 构建 C++ 项目时如何更改并行编译次数?
我不是在谈论分布式构建,而是在单个计算机上同时编译来自单个项目的一组源文件。 (目前使用 Xcode 3.2.4)
谢谢
【问题讨论】:
标签: c++ xcode build parallel-processing
对于 Xcode 4,您必须设置 IDEBuildOperationMaxNumberOfConcurrentCompileTasks 用户默认值,例如:
defaults write com.apple.dt.Xcode IDEBuildOperationMaxNumberOfConcurrentCompileTasks 4
注意“dt”。这不会影响命令行上的 xcodebuild。为此,请使用类似
xcodebuild -IDEBuildOperationMaxNumberOfConcurrentCompileTasks=4 ...
(见http://lists.apple.com/archives/xcode-users/2011/Apr/msg00403.html和http://lists.apple.com/archives/xcode-users/2011/Jul//msg00377.html)
【讨论】:
调整PBXNumberOfParallelBuildSubtasks用户默认值,例如:
defaults write com.apple.XCode PBXNumberOfParallelBuildSubtasks 6
【讨论】:
仅作记录 - 我们网站上使用 XCode 4 的开发人员发现,如果安装了 McAfee 防病毒软件,并行编译将被禁用。应该在 15-20 分钟内完成的构建需要将近五个小时才能删除 McAfee。
【讨论】:
对于命令行构建,我已经测试了 Mimika 链接的 2011/Jul mailing list post,并将其部署在我们的(Xcode 4.2,在 Snow Leopard 上)构建服务器上以节省内存,如下所示:
defaults write xcodebuild IDEBuildOperationMaxNumberOfConcurrentCompileTasks 1
【讨论】:
我不知道为什么它会从四个下降到两个,但我还发现退出 Xcode 6,然后在终端中输入“defaults write xcodebuild IDEBuildOperationMaxNumberOfConcurrentCompileTasks 4”让我在 Xcode 重新启动时回到四个。
【讨论】: