为Qt Creator设置默认的编译选项?

20

如何覆盖默认的make参数,即:

make -w

每次创建项目时,我都需要修改项目设置,在make参数中添加-j4

我能否将make -w -j4设置为默认值?

编辑

最好的方法是设置MAKEFLAGS环境变量,我选择唯一的答案作为最佳答案,只是为了关闭这个讨论。

要在UNIX下进行设置,请修改Qt Creator的*.desktop文件,将标题为Exec=的行前缀改为env MAKEFLAGS=-j4,但请注意,在设置为多线程后,您将无法立即在QtCreator中停止构建。


提示:你可以简单地写“-j”,它会自动选择线程数,这通常是你想要的(也许不总是)。 - leemes
2
@leemes 这通常是很危险的,因为对于复杂的 cmake 生成的项目来说,这会变成一个 fork 炸弹并导致我的电脑崩溃。 - ansgri
4个回答

26

要使其全局和永久,请前往

Tools > Options > Build & Run > Kits > (pick your toolchain) 

并填写您预定义的环境设置:MAKEFLAGS=-j4

确切要点击的截图


1
现在位于: 工具 > 选项 > 工具包 > (选择您的工具链) > 环境 - Martin R.

23
在qtcreator中,进入“项目”选项卡,并按您的喜好设置“Make arguments”: 输入图像描述

另外,供参考:Qt Creator构建设置 - Neox
5
根据问题的编辑,这不应该是正确答案。 - KcFnMi
这是最好的答案,但在最新版本(例如v4.7)中那个字段不在那里。 - user2023370
@user2023370 我不同意。在v4.7.0和v4.7.1中,只要我点击“详细信息”按钮,它就在那里。 - pogojotz
有没有办法将这个设置以某种方式放入“ MyQtApp”的“.pro”文件中? - TheWaterProgrammer

12

如果你希望每次创建新项目或打开某个项目时,-jx 参数成为默认值,那么你必须将环境变量 MAKEFLAGS 添加到你的系统中,并赋值为 -jx

例如,在 Ubuntu 上进行 8 线程编译,可以通过添加

MAKEFLAGS="-j8"

/etc/environment 中来实现此选项。

结果将会是:enter image description here


1
提示:你可以简单地写“-j”,它会自动选择线程数,这通常是你想要的(也许不总是)。 - leemes
我尝试了“-j”选项,但它没有起作用。它提示说:“未指定-j选项的进程数”。 - user1914692

2

在尝试实施问题描述中提到的修复方法后,我最终发现以下内容(显然只适用于使用 .desktop 文件的 freedesktop 概念的 linux):

"/usr/local/share/applications/Nokia-QtCreator.desktop" 中的行为:

Exec=/opt/qtcreator-2.5.2/bin/qtcreator.sh %F

我已将其更改为:
Exec=env MAKEFLAGS=-j16 /opt/qtcreator-2.5.2/bin/qtcreator.sh %F

已经按照问题所要求的功能实现了。

好的,我不知道为什么按照问题中的指示没有达到目标,但事实如此。希望这个解释能够帮助其他人。


提示:你可以简单地写“-j”,它会自动选择线程数,这通常是你想要的(也许不总是)。 - leemes
我发现-j选择的数字略低于最佳编译速度。-j足够接近,但我喜欢尽可能快。 - LovesTha

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接