Qt 项目文件没有看到环境变量

Posted

技术标签:

【中文标题】Qt 项目文件没有看到环境变量【英文标题】:Qt project file is not seeing an enviroment variable 【发布时间】:2014-10-01 10:38:09 【问题描述】:

我使用的是定制的 Linux 发行版。 我正在尝试从 Qt 项目文件(使用 message() 指令)中打印一个在 shell 中正确打印的环境变量。当 qmake 从同一个 shell 实例运行时,在打印的消息中看起来变量是空的。

我正在使用命令 message($$(ENVI_VAR)),根据 Qt 网站,它应该在 qmake 运行时获取变量的值(还有 $(ENVI_VAR) 语法,而是在 Makefile强>运行)

我错过了什么?

谢谢

编辑: 其实不仅qmake,我运行的每一个进程,也是脚本执行,都看不到环境变量。只有外壳可以。

【问题讨论】:

您是否尝试过 $$system( echo $ENVI_VAR ) 来获取 var 的值? 如何以及在哪里设置ENVI_VAR @vahancho in .bashrc @N1ghtLight 现在试过了,但是不行 【参考方案1】:

我只在.bashrc 文件中定义了变量,但我错过了export

【讨论】:

【参考方案2】:

通常全局变量值用作.pro 文件中的自定义变量。我将reference 放在 Qt 文档中,其中包含具体的操作方法:

“变量可以用来存储环境变量的内容。这些可以在qmake运行时进行评估,或者在项目构建时包含在生成的Makefile中进行评估。

要在qmake运行时获取环境值的内容,使用$$(...)操作符:

 DESTDIR = $$(PWD)
 message(The project will be installed in $$DESTDIR)

在上面的赋值中,PWD环境变量的值是在处理项目文件时读取的。

要在处理生成的 Makefile 时获取环境值的内容,请使用 $(...) 运算符:

 DESTDIR = $$(PWD)
 message(The project will be installed in $$DESTDIR)

 DESTDIR = $(PWD)
 message(The project will be installed in the value of PWD)
 message(when the Makefile is processed.)

在上面的赋值中,PWD的值是在处理项目文件时立即读取的,但是在生成的Makefile中将$(PWD)赋值给DESTDIR。这使得构建过程更加灵活,只要在处理 Makefile 时正确设置了环境变量。”

【讨论】:

问题最终与 linux 相关,而不是与 Qt 相关。抱歉,我不知道如何关闭主题【参考方案3】:

message()中由于某种原因需要使用不同的符号:

message(DESTDIR: ($$DESTDIR))

我今天遇到了这样的问题。只能通过查看 Qt mailing list 中的 qmake .pro 文件示例来解决。另一个可能的问题 - clue variables:

# $VAR notation allows to append the contents of the variable to another value
# without separating the two with a space
isEmpty(DESTDIR): DESTDIR = $$IDE_BUILD_TREE/lib/qtcreator/plugins

没有这样的符号,我得到了空的 DESTDIR 变量。

【讨论】:

以上是关于Qt 项目文件没有看到环境变量的主要内容,如果未能解决你的问题,请参考以下文章

如何在Windows下为Qt配置环境变量

centos下Qt项目编译的包含多个so库的软件,不能双击执行

QT creator如何在Ubuntu中配置环境变量path

Qt给应用程序添加版本信息(对rc文件的设置,可利用QT内置变量)

Qt项目的发布

win10qt安装后无法启动程序啥也没有提示