【发布时间】:2018-06-27 21:04:45
【问题描述】:
在构建时,我想通过环境变量加快构建速度:
MAKEFLAGS=-j12
我知道如何在 Qt Creator 中设置:
项目 → 构建 → 构建环境详细信息 → 添加
添加
MAKEFLAGS,其值为-j12
这在 *.pro.user 文件中显示为:
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges">
<value type="QString">MAKEFLAGS=-j12</value>
</valuelist>
这个过程效果很好,并且确实加快了编译速度,但我必须为每个套件和调试/发布组合完成这一步。当我升级 Qt 版本时,我必须为每个组合重新执行此过程。
如何在 *.pro 文件中设置该环境变量并将环境变量传播到每个构建流程中?
根据 cmets 和链接的问题,我尝试了 *.pro.shared 如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<qtcreator>
<data>
<variable>ProjectExplorer.Project.Target.0</variable>
<valuemap type="QVariantMap">
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges">
<value type="QString">MAKEFLAGS=-j12</value>
</valuelist>
</valuemap>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
<value type="int">18</value>
</data>
<data>
<variable>Version</variable>
<value type="int">18</value>
</data>
</qtcreator>
18 与我核对时生成的匹配,然后 Qt Creator 在重新启动 Qt Creator 时重新创建 *.pro.user 文件
【问题讨论】:
-
我没用过,不过猜猜这个:
$(VAR) => Contents of an Environment variable at the time Makefile (not qmake) is run -
那么,您不能在 *.pro 文件中独占吗?
-
@RossRogers “根据 cmets 和链接的问题,我尝试了 *.pro.shared 如下:...” 它没有用?哪个操作系统?也许只是用修改后的环境运行 QtCreator 和/或 qmake。例如在 bash 中你可以这样做:
MAKEFLAGS=-j12 qmake -
Doggone 它,你是对的@InnocentBystander。我只是要修改 Qt Creator 的所有入口点来设置该环境变量。比在 Qt Creator 中做任何事情都容易。