qmake中debug_and_release配置功能的优点是什么?

7

我只看到这个特性有一个优点:我们能够发出make all命令。

在我的开发者生涯中,我没有任何时候调用make。我使用Qt Creator,当我构建项目时,我希望它严格地作为调试版或发布版。我想人们也是这样期望的行为。

但是,在Qt Creator中,默认情况下启用了debug_and_release。我看不到这方面的优点。这种不直观的混乱是否有意义,例如:

CONFIG( debug, debug|release ) {
    # debug
} else {
    # release
}

人们通过犯错并在互联网上提问来学习这种方法吗?

我有什么遗漏的吗?


3
踩一下很好,但你能至少留个评论吗?你认为我错在哪里? - Sergey Skoblikov
但是你应该是通灵的... ;) - kayleeFrye_onDeck
这个回答解决了您的问题吗? qMake:qmake如何解释“CONFIG(debug,debug | release)”语法 - Top-Master
2个回答

6
我把它关闭:
CONFIG -= debug_and_release
CONFIG( debug, debug|release )  {
  CONFIG -= release
}
else {
  CONFIG -= debug
  CONFIG += release
}

更新。

我明白了,我的问题完全错了。 debug_and_releasedebug 以及 release 没有太多关系。


3
好的,我会尽力进行翻译:没人对这个问题感兴趣。好的,这个对我有用,那我就使用它。 - Sergey Skoblikov
最终我解决了如何在不必同时更改.pro文件的情况下从creator中设置配置。谢谢! - Andy Brice

0

debug_and_release选项与qmake的“debug”和“release”构建模式几乎没有任何关系,在另一个答案中学习构建模式: https://dev59.com/PmQn5IYBdhLWcg3wRlYM#75194443

debug_and_release选项是什么?

CONFIG += debug_and_release只是要求qmake.exe以支持构建两种构建模式的方式生成“Makefile”文件。

详细信息如下:

debug_and_release导致qmake解析脚本3次:

  • 一次不改变IDE设置的构建模式。
  • 一次确保CONFIG变量将release设置为构建模式。
  • 一次确保CONFIG变量将debug设置为构建模式。

并且以上述顺序(至少在使用qmake 3.0版本进行测试时)进行。

这通常会导致qmake生成3个文件:

  • Makefile
  • Makefile.release
  • Makefile.debug
"Makefile" 文件占用的空间大约是 "make.exe" 命令的十分之一,它只是将 "make.exe" 重定向到 "Makefile.release" 或 "Makefile.debug" 文件。

然而,如果您的脚本记录了一个警告,qmake 将会产生额外的两个警告,可以通过使用以下方式解决:

!build_pass: warning("My message shown in IDE")

或者:

!build_pass {
    warning("My message shown in IDE")
}

或者:

if (!build_pass) {
    warning("My message shown in IDE")
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接