QtCreator中的qmake无法识别Linux环境变量

时间:2017-07-28 08:00:15

标签: linux environment-variables qt-creator qmake

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

export ProjectsDir=/home/il_mix/Projects/

为了更好地定义问题,我制作了一个veeery minimalistic .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 location"设置为/opt/Qt/5.9.1/gcc_64/bin/qmake,所以我在终端中使用了相同的内容。

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

在QtCreator下让环境变量工作还有其他设置吗?

以下是qmake -v

的输出
QMake version 3.1
Using Qt version 5.9.1 in /opt/Qt/5.9.1/gcc_64/lib

1 个答案:

答案 0 :(得分:1)

我解决了我的问题。

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

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

ProjectsDir=/home/il_mix/Projects

然后QtCreator识别变量。

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

export ProjectsDir=$HOME/Projects

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