在 Qt pro 文件中写入变量的正确方法?

The right way to write variable in Qt pro file?

例如变量声明为TEST_VAR.

1. $TEST_VAR
2. $(TEST_VAR)
3. ${TEST_VAR}
4. $$TEST_VAR
5. $$(TEST_VAR)
6. $${TEST_VAR}

.pro文件中使用它的正确方法是什么?

正确的语法是:$$TEST_VAR$${TEST_VAR}

http://doc.qt.io/qt-5/qmake-language.html#variable-expansion
http://doc.qt.io/qt-5/qmake-language.html#variables

Qmake 是一个解释器,因此它没有显式变量声明。

Qmake 的赋值运算符具有 "variable = string" 的形式,因此,假设 X = Y 被解释为 "the variable named X is assigned with a string "Y""。要生成变量的 (字符串)值 ,需要运算符 $$X = $$Y.

运算符$$有两种形式:$$Y$${Y}。两者是等价的,除了后者允许用另一个字符串粘贴变量的值。例如,X = $$YZ 表示 "X is assigned with the value of a variable named YZ",而 X = $${Y}Z 表示 "X is assigned with the value of a variable named Y pasted with a string literal "Z"".

Qmake 还有一些其他扩展语法,旨在从当前 .pro 文件外部解决 "variables":

  • $$(var)是qmake进程的一个environment variable的值;
  • $(var)是一个environment variable的make过程的值;
  • $$[var] 是所谓的 "property" 的值,即由 qmake 本身管理的系统范围变量(参见 QSettings::NativeFormat)。