【问题标题】:How can I set an environment variable in a Qt *.pro file?如何在 Qt *.pro 文件中设置环境变量?
【发布时间】:2018-06-27 21:04:45
【问题描述】:

在构建时,我想通过环境变量加快构建速度:

MAKEFLAGS=-j12

我知道如何在 Qt Creator 中设置:

  1. 项目 → 构建 → 构建环境详细信息 → 添加

  2. 添加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) =&gt; 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 中做任何事情都容易。

标签: qt qmake


【解决方案1】:

您可以为每个套件设置默认环境变量。您无需重新生成 .pro 或 .pro.user 文件即可。添加定义时,它会自动将其提供给项目。

只需转到工具 |选项 |套件并选择您的套件。然后,向下滚动到左侧有环境标签的位置,右侧有一个“更改”按钮。点击它。然后,将 MAKEFLAGS=-j4 粘贴到该窗口中。如果您然后关闭首选项并转到项目并在左侧为您的编译器选择“构建”条目,然后向下滚动到右侧的构建环境,您会在那里找到它。然后,您使用该工具集创建的每个项目都将具有环境变量。当然,每次更新编译器时都必须重新定义它。

【讨论】:

  • 我已经这样做了,但是你如何在 pro 文件中设置它,以便在不同的机器上编译它时,你得到编辑?我不想进入套件并在 5.10、5.11.1、5.12.0、5.13.1、5.13.2、5.13.3 以及每个版本/调试/配置文件和 android/windows/linux 组合上进行更改然后在每台机器上。我希望在 repo 的 pro 文件中有一个简单的方法来做到这一点。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-08-25
  • 2019-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-07-20
  • 1970-01-01
相关资源
最近更新 更多