Linux QtCreator 中的 qmake 无法识别环境变量
Linux environment variable not recognized by qmake in QtCreator
我遇到了一个项目问题,我需要为 link 一些外部库检索环境变量,这些库在 Windows 上可以正常工作。在 Linux 中,qmake(来自 QtCreator 的 运行)似乎无法 "decode" 我在 .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 location" 设置为 /opt/Qt/5.9.1/gcc_64/bin/qmake
,所以我在终端中使用的也是如此。
我注意到在项目设置中,在 Build/Run 环境下,可以看到可用的变量。 "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
我解决了我的问题。
QtCreator 查找系统范围的环境变量,而在 .bashrc 或 .bash_profile 中设置的那些仅对用户有效。
要设置系统范围的环境变量,可以将其添加到 /etc/environment
。按照我的示例,我必须将此行附加到文件
ProjectsDir=/home/il_mix/Projects
然后QtCreator识别变量。
为了更加多用户友好,可以改为在“/etc/profile”中设置变量。这样环境变量可以包含另一个环境变量,比如
export ProjectsDir=$HOME/Projects
我想不同的行为是由于文件(/etc/environment
和 /etc/profile
)的来源不同。
我遇到了一个项目问题,我需要为 link 一些外部库检索环境变量,这些库在 Windows 上可以正常工作。在 Linux 中,qmake(来自 QtCreator 的 运行)似乎无法 "decode" 我在 .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 location" 设置为 /opt/Qt/5.9.1/gcc_64/bin/qmake
,所以我在终端中使用的也是如此。
我注意到在项目设置中,在 Build/Run 环境下,可以看到可用的变量。 "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
我解决了我的问题。
QtCreator 查找系统范围的环境变量,而在 .bashrc 或 .bash_profile 中设置的那些仅对用户有效。
要设置系统范围的环境变量,可以将其添加到 /etc/environment
。按照我的示例,我必须将此行附加到文件
ProjectsDir=/home/il_mix/Projects
然后QtCreator识别变量。
为了更加多用户友好,可以改为在“/etc/profile”中设置变量。这样环境变量可以包含另一个环境变量,比如
export ProjectsDir=$HOME/Projects
我想不同的行为是由于文件(/etc/environment
和 /etc/profile
)的来源不同。