我面临项目的问题,我需要检索一个环境变量来链接一些外部库,这些库在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
答案 0 :(得分:1)
我解决了我的问题。
QtCreator查找系统范围的环境变量,而.bashrc或.bash_profile中设置的环境变量仅对用户有效。
要设置系统范围的环境变量,可以将其添加到/etc/environment
。按照我的例子,我必须将此行附加到文件
ProjectsDir=/home/il_mix/Projects
然后QtCreator识别变量。
为了更加多用户友好,可以在' / etc / profile`中设置变量。这样环境变量可以包含另一个环境变量,如
export ProjectsDir=$HOME/Projects
我认为不同的行为是由于文件(/etc/environment
和/etc/profile
)来自不同的时间。