Gdb QtCreator:发布版本和调试版本之间的技术差异
关于使用QtCreator构建过程的一系列问题: 在QtCreator中,您可以在版本、调试和探查器构建之间进行区分。C.f。下图:Gdb QtCreator:发布版本和调试版本之间的技术差异,gdb,qt-creator,qmake,Gdb,Qt Creator,Qmake,关于使用QtCreator构建过程的一系列问题: 在QtCreator中,您可以在版本、调试和探查器构建之间进行区分。C.f。下图: 这些东西到底是做什么的?我无法在互联网上找到答案。 特别是,我感兴趣的是调试模式是否将“Debug”项添加到qmake变量“CONFIG”中,“-g”开关要求g++为gdb(我的调试器)等添加调试信息 哪个调试器是“CONFIG+=debug”的意思:“普通”调试器GDB(在我的例子中)还是QML调试器 为什么在项目文件中使用“+=”而不是“*=”如此常见?
- 发布:
qmake MyProject.pro“CONFIG+=qtquickcompiler”
- 调试:
qmake MyProject.pro“CONFIG+=Debug”“CONFIG+=qml\u Debug”
- 配置文件:
qmake MyProject.pro“CONFIG+=qml\u debug”“CONFIG+=qtquickcompiler”“CONFIG+=force\u debug\u info”“CONFIG+=separate\u debug\u info”
-g
选项,您是指gcc吗?CONFIG+=debug
的作用是将-g
选项传递给gcc,正如您在Qt/mkspecs/common/gcc base.conf中的这一行中所看到的:
QMAKE_CFLAGS_DEBUG += -g
CONFIG
的情况下,它们甚至可能是有意义的。例如,CONFIG
同时包含debug
和release
是合法的。在这种情况下,列表中的最后一个将生效。在下面的例子中考虑<代码> += 和<代码> *= < /代码>:
CONFIG = debug
CONFIG += release
CONFIG += debug # now CONFIG = debug release debug, so debug is the effective mode
CONFIG = debug
CONFIG += release
CONFIG *= debug # now CONFIG = debug release, so release is the effective mode
在命令行中,*=
可能不受欢迎还有另一个原因:许多shell将包含*
的任何参数视为要展开的文件glob/通配符,除非它被转义或引用