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

时间:2014-10-01 10:38:10

标签: linux qt environment-variables qmake

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

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

我错过了什么?

由于

修改 实际上,不仅qmake,而且我运行的每个进程,也是脚本执行,都无法看到环境变量。只有shell才能。

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

通常,全局变量值用作.pro文件中的自定义变量。我在这里reference向Qt doc提供具体细节如何执行此操作:

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

要在qmakeis运行时获取环境值的内容,请使用$$(...)运算符:

 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时正确设置了环境变量,这就使构建过程更加灵活。“

答案 2 :(得分:0)

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变量。