gpt4 book ai didi

qt - QMake:测试功能没有按预期工作

转载 作者:行者123 更新时间:2023-12-04 13:02:18 25 4
gpt4 key购买 nike

在 QtCreator 4.2.0 中,我尝试使用一个 *.pro 文件为多种硬件配置构建二进制文件。

Build & Run => Build Settings => Build Enviroment 中,我定义环境变量 TARGET 如下:

  • build设置 A:变量 TARGET 的值为 bbb
  • build设置 B:变量 TARGET 具有值 desktop

pro 文件中,我使用了以下测试函数:

equals($$TARGET,"bbb")
{
message("setting include paths for bbb"))
message($$TARGET)
}

equals($$TARGET,"laptop")
{
message("setting include paths for laptop.")
message($$TARGET)
}

contains($$TARGET,"*bbb*")
{
message("setting include paths for bbb"))
message($$TARGET)
}

contains($$TARGET,"*laptop*")
{
message("setting include paths for laptop.")
message($$TARGET)
}

我在运行 qmake 时得到了这个输出:

Project MESSAGE: setting include paths for bbb
Project MESSAGE: bbb
Project MESSAGE: setting include paths for laptop.
Project MESSAGE: bbb
Project MESSAGE: setting include paths for bbb
Project MESSAGE: bbb
Project MESSAGE: setting include paths for laptop.
Project MESSAGE: bbb
Project MESSAGE: setting include paths for bbb

这对我来说毫无意义,我不知道我在这里做错了什么。为什么从 laptop 执行测试后的部分?

顺便说一下,我使用Scopes 解决了我的问题。这对我来说很完美:

CONFIG += $$(TARGET_HW)
desktop {
message("setting include paths for laptop.")
}

cetec {
message("setting include paths for cetec."))
}

但我仍然对使用测试函数的正确方法感兴趣。

最佳答案

我为第一个测试提供了正确的语法,例如:

equals(TARGET,"bbb") {
message("setting include paths for bbb"))
message($$TARGET)
}

请注意:

  1. 大括号在测试的同一行。
  2. 测试的变量没有美元符号,只有变量名

关于qt - QMake:测试功能没有按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59282279/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com