一般来说,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
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期
· 全程使用 AI 从 0 到 1 写了个小工具
· 从文本到图像:SSE 如何助力 AI 内容实时呈现?(Typescript篇)
2021-09-26 OpenCV 找出图像中最小值最大值函数minMaxLoc的使用
2021-09-26 OpenCV 截取图像中某一区域的方法