qmake自定义函数

使用qmake编写构建步骤时,如果较为复杂或重复的行为可以使用函数来实现。

1. 语法

  • 使用defineReplace函数定义func函数

    1
    2
    3
    defineReplace(func) 
    {
    }
  • func传参

    1
    $$func(11, 22, 33)
  • 函数返回值

  1. 无论是返回什么值都需要括号
  2. 可以忽略不写。
    1
    return (Hello world!)
  • func捕获参数($$1$$N)
    1
    2
    3
    4
    5
    6
    defineReplace(func) 
    {
    ARG1 = $$1
    ARG2 = $$2
    ARG3 = $$3
    }

2. 示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
defineReplace(func1) {
return ($$replace(1, /, \\))
}

defineReplace(func2) {
return ($$1)
}

result1 = $$func1($$PWD)
result2 = $$func2($$PWD)
message($$result1)
message($$result2)
---------------------------
输出:
Project MESSAGE: C:\Users\Documents\
Project MESSAGE: C:/Users/Documents/

3. 关于变量是否带$$的问题

  • 在示例中有的时这样写$$1,有的直接就是1,它们区别是前者是获取变量的值,而后者是变量名字。
  • $$replace()函数输入的是变量名字,而message($$result1)$$result1是获取变量的值,因为message函数输入的是变量的值。

4. 关于更多

  • Qt君公众号后台回复”qmake“获取更多相关内容。