调试记录

2023-05-16

1, 发布失败问题

如果在本机程序运行正常,拿到别人同样系统机器上运行失败,经常因为缺一些程序运行需要的插件依赖库

2,跨平台代码,未声明的标识符错误 

qt程序在linux下正常编译过的源码拿到windows下vs编译出现 未声明的标识符错误时, 考虑文件编码错误引起的问题,看警告提示 ,将文件用nodepad++改为unicode编码

3, 野指针问题。

定义指针变量一定初始化一下,有的编译器处理方式不一样, release下 , 调试模式可能没问题,发布就出现崩溃,像途中报这样指针错误,访问冲突

4, QDebug调试。

qDebug可以像printf()函数一样使用。 像std::cout 一样用需要包含 《QDebug》头文件,release程序的时候不想输出打印信息可以在pro文件DEFINES+= QT_NO_DEBUG_OUTPUT宏,或在预处理里加上,重新编译打印信息就消失了

5, 给程序加管理员权限。

项目, 右键---属性---连接器---清单文件---uac执行级别 选择requireAdministrator 重新编译即可.

6, VS不输出.lib .exp

如果你不想输出的.exe文件夹下面还有.lib和.exp这些杂项,你可以打开: 配置属性 > 链接器 > 高级 > 导入库,在这里修改位置,例如:

$(Configuration)\$(TargetName).lib

.exp也是根据.lib的文件名来生成的。

7, warning LNK4042: 对象被多次指定,已忽略多余的指定

1)、把报LNK4042的.h和.cpp从项目中排除

2)、重新加入排除的.h和.cpp

8,warning LNkMSB8028 The intermediate directory (Debug\) contains files shared from another project (XXXX.vcxproj).  This can lead to incorrect clean and rebuild behavior

警告意思在Debug目录下 有另一个项目共享文件 这里的Debug目录是工程文件下目录(Test\Debug, 手动删除Debug文件夹  重建工程解决

9, 编程习惯(很重要)

1) 少用字面常量,或 无意义的数字 如 ==1,==2 ,==3, ==“啦啦啦”, 最好定义为const 常变量, 方便调试和维护

2) 日志打印。 打印日志要有 : 文件名 函数 ,函数所在行, 日期, 打印输出的详细语句 等要素,能通过日志一步定位到错误

10, qt5中文编码设置

QT5中文乱码时需要在头文件加上
#pragma once //保证头文件只被编译一次
#if _MSC_VER >= 1600 //VS2010以上
#pragma execution_character_set("utf-8") //设置编译环境为utf-8
#endif
输出中文请使用qDbug()<< "内容";
不要使用cout 这个是无法正常显示中文的.。。。。。。
或者
在 .pro文件中添加  
CODECFORSRC = UTF8
或者(这个比较好用,一劳永逸)
DEFINES -= UNICODE
msvc:QMAKE_CXXFLAGS += -execution-charset:utf-8

11, 系统找不到指定路径,.... cmakelists.txt ,,,,,  C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(171,5): error MSB6006 cmd.exe 已退出,代码为3问题

解决:编辑.vcxproj工程文件,搜索CustomBuild,查看包含的路径,修改后问题解决。

12, QMessageLogContext内容为空

Release版本的输出却没有文件信息、行数等信息,如图。

Release输出

原因是:文件信息、行数等信息在Release版本默认舍弃。我们只要在.pro文件定义一个宏

DEFINES += QT_MESSAGELOGCONTEXT
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

调试记录 的相关文章

  • docker-环境搭建

    环境搭建 http www dockone io article 9120 https blog csdn net cloud xy article details 52470265 Docker版本 docker版本分为docker ee
  • 接口测试工具Postman接口测试图文教程

    Postman接口测试工具使用 一 前言 在前后端分离开发时 xff0c 后端工作人员完成系统接口开发后 xff0c 需要与前端人员对接 xff0c 测试调试接口 xff0c 验证接口的正确性可用性 而这要求前端开发进度和后端进度保持基本一
  • 内存的静态分配和动态分配的区别

    内存的静态分配和动态分配的区别主要是两个 xff1a 一是时间不同 静态分配发生在程序编译和连接的时候 动态分配则发生在程序调入和执行的时候 二是空间不同 堆都是动态分配的 xff0c 没有静态分配的堆 栈有2种分配方式 xff1a 静态分
  • Python用pip安装第三方库问题汇总

    1 pip 升级包的时候 xff0c 出现 xff1a Cannot uninstall xxx It is a distutils installed project 的解决方法 xff1b ERROR Cannot uninstall
  • 麻将胡牌算法思路(任意赖子)

    看网上算法穷举 xff0c 枚举 xff0c 剔除特殊情况等等很乱 xff0c 感觉还是写一套通用的逻辑比较好 这个算法前后修改了几次 xff0c 最终在三星s4这种老的安卓机上计算一次时间在0 04s左右 总体思路 xff1a 首先需要一
  • STM32HAL库 ADC结构体应避免直接拷贝赋值

    对ADC1的结构体AdcHandle1赋值并初始化后 xff0c 想要继续初始化ADC2的AdcHandle2 xff0c 想着大部分是一样的 xff0c 可以直接拷贝AdcHandle1 xff0c 也就是 AdcHandle2 61 A
  • 144个stm32开发相关的问题,看你了解几个

    1 SYSCLK时钟源有三个来源 xff1a HSI RC HSE OSC PLL 2 MCO 2 xff1a 0 可以提供4源不同的时钟同步信号 3 GPIO口貌似有两个反向串联的二极管用作钳位二极管 4 总线矩阵采用轮换算法对系统总线和
  • git未提交代码pull本地被覆盖 记录一下自己早上被git教训的一次惨痛经历

    早上来更新代码了 就pull一下 就pull了 一段时间后 idea里的文件没了没了没了 整个新建的的文件夹也没了 xff01 xff01 结果就是代码被覆盖 问题描述 xff1a 写了一天的代码 xff0c 没有commit xff0c
  • MAC常用操作

    1 添加环境变量 span class token function vi span bash profile span class token builtin class name export span span class token
  • Jetson TX2的原理图细节

    Jetson TX2的原理图细节 启动相关的配置引脚 Pin E2 SLEEP Pin E1 FORCE RECOV Pin A7 CHARGING Pin B16 UART2 TX Pin A16 UART2 RTS Pin H12 UA
  • esp32-cam+yolov8实现智能感应灯

    一 硬件要求 esp32 cam单片机 43 一个LED灯 xff08 用这个灯作为测试 xff0c 若控制日常生活用的灯可以用继电器接上220V的电源 xff09 二 深度学习部分 需要在电脑上配置yolov8的运行环境 xff0c 最好
  • 架构师的经典语录

    孙立 xff1a 如何搭建更加有效的测试环境 xff1f 测试环境和线上环境毕竟不可能完全一样 孙朝晖 xff1a 我想分成两个方面来回应 功能测试环境的建设 xff1a 功能测试环境主要面对的挑战不是线上 线下系统结构不一致 xff0c
  • 一切问题都可以是最优化

    一切问题都可以是最优化 本文版权属于重庆大学计算机学院刘骥 xff0c 禁止转载 一切问题都可以是最优化 最优化问题的一般定义是 xff1a 存在目标函数 f x 1 x 2 x n xff0c 求满足特定条件的变量 x 1 x 2 x n
  • 读懂 Workerman 框架和 GatewayWorker 框架

    首先去 workerman 的官网查看相关的介绍 xff0c 再次不在赘述 我们通过一个 workerman 官网的例子来简单讲述一下workerman 的工作过程 windows版本聊天室 点击下载workerman chat for w
  • 如何将一个 镜像 pull到docker服务器上,并且实现该image 处于 up状态?

    该文主要介绍 xff1a 如何将镜像pull到docker 服务器上 xff0c 并且实现该image处于up状态 这个相对来说是比较容易的 1 搜索需要pull的image root 64 localhost docker search
  • STANet

    A Spatial Temporal Attention Based Method and a New Dataset for Remote Sensing Image Change Detection 摘要 进行遥感图像变化检测 xff0

随机推荐