2017-07-28 361 views
0

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

export ProjectsDir=/home/il_mix/Projects/ 

为了更好地定义问题,我已经做了veeery简约.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,所以我从终端使用的一样。

我注意到,在项目设置的Build/Run Environment下,可以看到可用的变量。 “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 

回答

0

我解决我的问题的输出。

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

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

ProjectsDir=/home/il_mix/Projects 

然后QtCreator识别变量。

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

export ProjectsDir=$HOME/Projects 

我想不同的行为是由于这样的事实,文件(/etc/environment/etc/profile),在不同的时间货源。