一般来说,release版的可执行程序在体积上比起debug版要小很多(数倍甚至数十倍的差异),而且由于剥离了许多调试信息及符号等运行效率相对也高一些。然而在使用Qt开发中偶尔也会遇到及时选择了release版生成的二进制文件仍然很庞大的问题。所以要仔细检查一下相关设置,保证最后发布出去的版本是release版。
1、前提: 在生成Qt库时(./configure)已经配置为 + -debug-and-release
如果配置为./configure -release,则只能生成release版
附简单配置说明如下
-release ........... 调试关闭.没有调试库,自己的项目只能发布,不能调试(没有调试库的缘故),如果你硬要编译debug版本的话,会提示找不到xxxxxd.dll
* -debug ............. 只有调试库,没有释放库,也就是说以后自己的项目只能调试,如果你硬要编译debug版本的话,会提示找不到xxxxx.dll
+ -debug-and-release . 编译后包含两种库。最好编译两种库
2、Qt Createor设置
在creator的Projects选项卡中,构建设置(Build Settings),如果缺少了Debug或者Release,点击其中的Add选择对应的QtSDK版本即可。
在Build Steps中qmake步骤,如果是Debug则需加上参数:CONFIG+=debug。
3、pro文件(可选)
注意:如果在Qt Creator设置了构建参数,pro文件就不必重复设置。
CONFIG+=debug_and_release
CONFIG(debug,debug|release)
{
unix:TARGET=$$join(TARGET,,,_debug)
win32:TARGET=$$join(TARGET,,d)
}
make 或make debug -------debug版
make release -------release版
make all -------两个版本都生成
生成Makefile中有QT_NO_DEBUG参数
4、屏蔽release版本中所有QDebug()提示信息:
如果要在命令行输出时不打出所有qdebug信息,可以在pro文件中添加DEFINES+=QT_NO_DEBUG_OUTPUT