【问题标题】:Linux environment variable not recognized by qmake in QtCreatorQtCreator 中的 qmake 无法识别 Linux 环境变量
【发布时间】:2017-07-28 08:00:14
【问题描述】:

我遇到了一个项目问题,我需要检索一个环境变量来链接一些在 Windows 上正常工作的外部库。在 Linux 中,看起来 qmake(从 QtCreator 运行)无法“解码”我在 .bashrc 中设置的环境变量,声明如下

export ProjectsDir=/home/il_mix/Projects/

为了更好地定义问题,我制作了一个非常简约的 .pro 文件,其中只包含这个

message($$(ProjectsDir))

如果我使用命令从终端运行 qmake

/opt/Qt/5.9.1/gcc_64/bin/qmake test.pro

我得到正确的输出

Project MESSAGE: /home/il_mix/Projects/

当我从 QtCreator 打开 .pro 时,我得到一个空的 Project MESSAGE

从 QtCreator 选项中,我看到我唯一的套件将“qmake 位置”设置为 /opt/Qt/5.9.1/gcc_64/bin/qmake,所以我在终端中使用的相同。

我注意到在项目设置中,在构建/运行环境下,可以看到可用的变量。 “ProjectsDir”未在任何可用环境(构建、系统)中列出。在 Windows 上,我的环境变量被列出,因此被 qmake 识别。

我是否缺少任何其他设置来让环境变量在 QtCreator 下工作?

这是qmake -v的输出

QMake version 3.1
Using Qt version 5.9.1 in /opt/Qt/5.9.1/gcc_64/lib

【问题讨论】:

    标签: linux environment-variables qt-creator qmake


    【解决方案1】:

    我解决了我的问题。

    QtCreator 查找系统范围的环境变量,而 .bashrc 或 .bash_profile 中设置的变量仅对用户有效。

    要设置系统范围的环境变量,可以将其添加到/etc/environment。按照我的示例,我必须将此行附加到文件中

    ProjectsDir=/home/il_mix/Projects
    

    然后QtCreator识别变量。

    为了对多用户更友好,可以在“/etc/profile”中设置变量。这样环境变量可以包含另一个环境变量,比如

    export ProjectsDir=$HOME/Projects
    

    我认为不同的行为是由于文件(/etc/environment/etc/profile)的来源不同。

    【讨论】:

      猜你喜欢
      • 2016-02-04
      • 1970-01-01
      • 1970-01-01
      • 2016-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多