QtCreator中三种不同编译版本 debug、release、profile 的区别

这篇具有很好参考价值的文章主要介绍了QtCreator中三种不同编译版本 debug、release、profile 的区别。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  • debug调试模式,编译后的可执行文件很大,带了很多调试符号信息等,方便开发阶段调试的时候进入具体的堆栈查看值。会打开所有的断言,运行阶段性能差速度慢,可能会有卡顿感觉。

  • release发布模式,编译后的可执行文件很小,不带任何调试符号信息,一般用于打包发布程序。由于经过了各种优化,会关闭所有断言,运行阶段性能最好,如果有卡顿那肯定是你的程序问题。

  • profile概述模式,编译后的可执行文件比debug小很多比release大一点,带有部分调试符号信息,在debug和release之间取一个平衡,兼顾性能和调试,性能更优但是又方便调试。

  • 使用Qt5.7版本对应三种模式编译的空白窗体程序大小:debug(1319kb)、release(24kb)、profile(90kb)。

  • debug链接的库是带d结尾的,release和profile链接的库是不带d结尾的,很多人以为profile链接的是带d结尾的其实是错误的。

  • 新的Qt在线安装程序在安装的时候,可以勾选是否安装debug调试库(对应lib目录下一堆带d结尾的文件),以前的版本是默认都安装,现在可选安装以便减少体积。

  • 无论是否安装了debug调试库,你都可以选择debug模式生成对应debug的文件,这个不知道怎么做到的。

  • 无论是哪种模式,都可以在程序中开启日志钩子输出日志信息,方便收集运行阶段的各种信息反馈给开发人员查看问题。

  • 最初的开发工具一般是具有debug和release两种模式,随着用户需求的增加和场景的需要,部分开发工具衍生出了profile模式,更有甚者比如flutter还有第四种test模式。


推荐一个零声学院项目课,个人觉得老师讲得不错,分享给大家:
零声白金学习卡(含基础架构/高性能存储/golang云原生/音视频/Linux内核)
https://xxetb.xet.tech/s/VsFMs文章来源地址https://www.toymoban.com/news/detail-684068.html

到了这里,关于QtCreator中三种不同编译版本 debug、release、profile 的区别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ubuntu换源,不同版本的源(镜像源)(lsb_release -c命令,显示当前系统的发行版代号(Codename)、ubuntu版本、ubuntu系统版本)ubuntu源、apt源

    用以下命令查看版本名: 或者: 在Linux系统中,lsb_release -c命令用于显示当前系统的发行版代号(Codename)。在这个命令中,lsb代表“Linux标准库(Linux Standard Base)”,它是一种为Linux操作系统定义标准化基础架构的规范。该规范旨在确保不同Linux发行版之间的二进制兼容性,

    2024年02月06日
    浏览(38)
  • js中三种URI编码方式比较

    数据传递常需要编码后传递,接收还需反编译,定义url: var url = \\\"https://www.cnblogs.com/?username=\\\'小森森\\\'password=\\\'666666\\\'\\\"; https%3A//www.cnblogs.com/%3Fusername%3D%27%u5C0F%u68EE%u68EE%27%26password%3D%27666666%27 https%3A%2F%2Fwww.cnblogs.com%2F%3Fusername%3D\\\'%E5%B0%8F%E6%A3%AE%E6%A3%AE\\\'%26password%3D\\\'666666\\\' https://www.cnblogs

    2024年02月04日
    浏览(43)
  • Python中三种时间格式转换的方法

    一 时间元组 1. 时间元组和时间戳的互化 2. 时间元组和字符串的互化 二 字符串与时间戳 字符串与时间戳不能直接转化,要通过时间元组来完成,时间元组是中介. 转化图: 三 时间的加减用法 时间元组不能加减,要用datetime格式的时间才能加减.下面是字符串转为datetime后,进行

    2024年02月13日
    浏览(41)
  • Intellij idea 编译报错:Error : java 不支持发行版本5(error: release version 5 not supported)

    问题:在 IntelliJ IDEA 中创建一个Maven项目时,出现以下错误并且无法构建它。 我设法解决了错误并进行到可以构建的地步,因此我将介绍如何处理它。 环境 方法 – 如何处理“错误:java:错误:不支持发布版本 5” – 如何处理“错误:java:当前不支持源选项 5。请使用 6 或

    2024年02月12日
    浏览(40)
  • Java中三种保留小数点的方法

    方法一:使用BigDecimal格式化小数点 结果 方法二: 使用Math工具中的取整方法,可用于浮点数取整,只看浮点数的小数位是何值来判断. 结果展示: 方法三: 使用DecimalFormat数据格式化方式. 结果展示:

    2024年02月11日
    浏览(46)
  • Get请求中三种传参方式解读

    这几天我在看go-zero框架,实现了一个简单的单体服务,但是使用postman测试接口的时候遇到点问题 error:field id is not set。就是说请求的参数解析失败 发现是我的入参的tag标签和传参对不上 一、使用form标签(最常用) form标签就是最常用的一种,form就是表单的意思,通过url传

    2023年04月21日
    浏览(40)
  • js中三种for循环(含案例分析)

    js中的for循环有三种 :1.普通的for循环 ,2.for in 循环 ,3.for of 循环 它们三个各自有各自的特点和作用,下面我会用一个小案例来帮助大家理解它们三个的区别 (三种for循环都能写break,return等跳出) **案例:**现在想用for循环展示lists里的name数据 第一种普通for循环遍历出的数据

    2024年02月09日
    浏览(33)
  • (Python) Python中三种时间格式的转换方法

    1. 时间元组 1.1. 时间元组和时间戳的互相转化 1.2. 时间元组和字符串的互相转化 2. 字符串与时间戳 字符串与时间戳不能直接转化,要通过时间元组来完成,时间元组是中介. 转化关系图: 3. 时间的加减用法 时间元组不能加减,要用datetime格式的时间才能加减.下面是字符串转为

    2024年02月05日
    浏览(41)
  • 解决QTCreator debug特别慢的问题(输出窗户打印moudule loaded特别慢)

    背景: 在公司使用qtcreator直接使用debug运行程序,程序10多分钟才加载成功。导致效率极低而无法正常使用断点调试。 替代方案: debug模式下运行程序,然后点击应用程序输出右上角的\\\"挂接调试器到PID按钮\\\"绿色三角按钮。可以进入C++断点调试界面,但是无法对QML进行断点调

    2024年02月17日
    浏览(43)
  • WPF中三种方法得到当前屏幕的宽和高

    WPF程序中的单位是与设备无关的单位,每个单位是1/96英寸,如果电脑的DPI设置为96(每个英寸96个像素),那么此时每个WPF单位对应一个像素,不过如果电脑的DPI设备为120(每个英寸120个像素),那此时每个WPF单位对应应该是120/96=1.25个像素 一般在程序中我们常常需要得到当

    2024年02月12日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包