2017-07-28 366 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),在不同的時間貨源。