解决windows 下使用 mingw编译器 调试时 无法跟进源码

2023-11-08

windows 下使用 mingw编译器 调试时 无法跟进源码

最近在公司使用QT 开发,官方在线下载的 安装的QT mingw 都是没有debug版本的 由于没有debug版本动态库

所以你调试的时候压根就无法跟进QT源代码里,那么找问题的时候 大部分都是跟到汇编代码了。

由于刚来公司不久,人微言轻。我建议统一使用msvc编译 得到拒绝后 没有办法只能重新编译mingw debug版本 了。

下面记录下使用mingw 编译debug 版本步骤

1、 首先准备环境要做好

Perl version 5.12 
Python version 2.7 
Ruby version 1.9.3

这些东西要先安装好

请自行百度 安装

2、QT环境已经安装好了

打开QT5.15.2(Mingw8.1.0 64-bit) 命令行工具

image-20210919150924727

3、在命令行工具中 切换到 你QT安装的目录\版本号\src

执行如下代码

configure -debug -platform win32-g++ -opensource -confirm-license -opengl desktop -prefix "你的qt安装目录/qt版本号"

4、开始构建

mingw32-make
可能会报如下错误
 cannot find -lpnp_basictoolsd
collect2.exe: error: ld returned 1 exit status
你QT安装的目录\版本\Src\qtbase\examples\widgets\tools\plugandpaint 下的 pro 文件 编译一个 debug 版本

继续编译

mingw32-make

继续报错 接着解决

C:\Users\HotPixel-2\AppData\Local\Microsoft\WindowsApps\python.exe D:/Qt/5.15.2/Src/qtdeclarative/src/3rdparty/masm/yarr/create_regex_tables > .generated\debug\RegExpJitTables.h
mingw32-make[4]: *** [Makefile.Debug:1059: .generated/debug/RegExpJitTables.h] Error 9009

找到RegExpJitTables.h 生成的所在目录 自己手动执行

python.exe D:/Qt/5.15.2/Src/qtdeclarative/src/3rdparty/masm/yarr/create_regex_tables > RegExpJitTables.h

继续编译

mingw32-make

5、如果构建过程没有错误执行 安装命令即可

mingw32-make install

6、安装完以后 执行aaa 命令时 设置的-prefix参数的目录下 会多出这些文件夹

image-20210920112221729

将这些文件夹 复制到 你QT 安装目录/版本号/ 目录下新建一个 mingw84_64_debug 文件夹

如下图目录结构

image-20210920112544206

7、打开QT creator 菜单 - 工具-选项-kits

添加你编译好的这个mingw 64 debug 版本环境

image-20210920112839800

这个时候在选中 Kits 下的 Kits 项 clone 一份 mingw64 默认的 改下名称 和 QT版本

image-20210920113010794

到此即可使用mingw 编译器 完美调试 跟进QT 源代码 定位问题了

  • 打开你的项目 选择你新增加的 mingw 64 debug 版本的环境

    image-20210920113709788

  • 看看效果

    原来这段线程池的start 函数我 按F11 是怎么也进不去的

    image-20210920113352373

    现在按下F11完美进入

    image-20210920113423464

    当然QT 需要设置调试源码的路径步骤也不能少

    image-20210920113522130

参考文章如下:

https://doc-snapshots.qt.io/qt5-5.15/windows-building.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

解决windows 下使用 mingw编译器 调试时 无法跟进源码 的相关文章

  • 添加对共享类的多个 WCF 服务的服务引用

    我正在尝试将我的 WCF Web 服务拆分为几个服务 而不是一个巨大的服务 但是 Visual Studio Silverlight 客户端 复制了两个服务共享的公共类 这是一个简单的例子来说明我的问题 在此示例中 有两个服务 两者都返回类
  • 为什么基类必须有一个带有 0 个参数的构造函数?

    这不会编译 namespace Constructor0Args class Base public Base int x class Derived Base class Program static void Main string a
  • 当我单击 C# 中的“取消”按钮时重定向到新页面(Web 部分)

    Cancel button tc new TableCell btnCancel new Button btnCancel Text Cancel btnCancel Click new EventHandler btnCanel Clic
  • 使用实体框架从集合中删除项目

    我正在使用DDD 我有一个 Product 类 它是一个聚合根 public class Product IAggregateRoot public virtual ICollection
  • 在 C++11 中省略返回类型

    我最近发现自己在 C 11 模式下的 gcc 4 5 中使用了以下宏 define RETURN x gt decltype x return x 并编写这样的函数 template
  • 有什么工具可以说明每种方法运行需要多长时间?

    我的程序的某些部分速度很慢 我想知道是否有我可以使用的工具 例如它可以告诉我可以运行 methodA 花了 100ms 等等 或者类似的有用信息 如果您使用的是 Visual Studio Team System 性能工具 中有一个内置分析
  • Rails Windows Vagrant 响应时间非常慢

    我在跑 Vagrant 1 7 1 Rails 4 1 4 Thin 1 6 1 Windows 7 每个静态文件的发送时间都超过一秒 在我的 PC 上加载一个页面可能需要大约 20 秒 而在同事的 Linux 机器上则只需瞬间 有一些帖子
  • 在Windows 7上安装curl后缺少libcurl-4.dll

    按照这个人的安装curl后指示 https stackoverflow com a 28757477 1186038 除了第 2 步 已安装Win64 OpenSSL v1 0 1u 轻型相反 因为下载页面中缺少版本 k http slpr
  • 转到 C# WPF 中的第一页

    我正在 WPF 中使用导航服务 为了导航到页面 我使用 this NavigationService Navigate new MyPage 为了返回我使用 this NavigationService GoBack 但是如何在不使用的情况
  • 禁用 LINQ 上下文的所有延迟加载或强制预先加载

    我有一个文档生成器 目前包含约 200 个项目的查询 但完成后可能会超过 500 个 我最近注意到一些映射表示延迟加载 这给文档生成器带来了一个问题 因为它需要根据生成的文档来访问所有这些属性 虽然我知道DataLoadOptions可以指
  • 两组点之间的最佳匹配

    I ve got two lists of points let s call them L1 P1 x1 y1 Pn xn yn and L2 P 1 x 1 y 1 P n x n y n 我的任务是找到它们点之间的最佳匹配 以最小化它
  • 用于从字符串安全转换的辅助函数

    回到 VB6 我编写了一些函数 让我在编码时无需关心字符串的 null 和 数字的 null 和 0 等之间的区别 编码时 没有什么比添加特殊情况更能降低我的工作效率了用于处理可能导致一些不相关错误的数据的代码 9999 10000 如果我
  • 从匿名类型获取值

    我有一个方法如下 public void MyMethod object obj implement 我这样称呼它 MyMethod new myparam waoww 那么我该如何实施MyMethod 获取 myparam 值 Edit
  • C# 搜索目录中包含字符串的所有文件,然后返回该字符串

    使用用户在文本框中输入的内容 我想搜索目录中的哪个文件包含该文本 然后我想解析出信息 但我似乎找不到该字符串或至少返回信息 任何帮助将不胜感激 我当前的代码 private void btnSearchSerial Click object
  • 过期时自动重新填充缓存

    我当前缓存方法调用的结果 缓存代码遵循标准模式 如果存在 则使用缓存中的项目 否则计算结果 在返回之前将其缓存以供将来调用 我想保护客户端代码免受缓存未命中的影响 例如 当项目过期时 我正在考虑生成一个线程来等待缓存对象的生命周期 然后运行
  • 32位PPC rlwinm指令

    我在理解上有点困难rlwinmPPC 汇编指令 旋转左字立即然后与掩码 我正在尝试反转函数的这一部分 rlwinm r3 r3 0 28 28 我已经知道什么了r3 is r3在本例中是一个 4 字节整数 但我不确定这条指令到底是什么rlw
  • gdb查找行号的内存地址

    假设我已将 gdb 附加到一个进程 并且在其内存布局中有一个文件和行号 我想要其内存地址 如何获取文件x中第n行的内存地址 这是在 Linux x86 上 gdb info line test c 56 Line 56 of test c
  • 同时从多个流中捕获、最佳方法以及如何减少 CPU 使用率

    我目前正在编写一个应用程序 该应用程序将捕获大量 RTSP 流 在我的例子中为 12 个 并将其显示在 QT 小部件上 当我超过大约 6 7 个流时 问题就会出现 CPU 使用率激增并且出现明显的卡顿 我认为它不是 QT 绘制函数的原因是因
  • 在基类集合上调用派生方法

    我有一个名为 A 的抽象类 以及实现 A 的其他类 B C D E 我的派生类持有不同类型的值 我还有一个 A 对象的列表 abstract class A class B class A public int val get privat
  • 如何使用 std::array 模拟 C 数组初始化“int arr[] = { e1, e2, e3, ... }”行为?

    注意 这个问题是关于不必指定元素数量并且仍然允许直接初始化嵌套类型 这个问题 https stackoverflow com questions 6111565 now that we have stdarray what uses are

随机推荐

  • JS之instanceof详解

    instanceof 用于检测构造函数的 prototype 属性是否出现在某个实例对象的原型链上 语法 object instanceof constructor object 某个实例对象 constructor 某个构造函数 用来检测
  • Github使用学习笔记(四)

    第四节任务 Github中奇怪的后缀文件都是什么 一 README md 1 README md的作用 在构建完整项目结构的根目录下应该有一个名为ReadMe的文件来说明当前版本源码结构或版本信息 如果你常看开源项目也会发现一个规律 在你拿
  • QuestMobile 2017年中国移动互联网年度报告

    来源 QuestMobile 2017年 科技的风口兜兜转转 从直播 VR到AI再到区块链 短视频泛娱乐IP 最终在2017年底定格在了知识付费上 然而这并没有结束 紧随知识付费而来的就是撒币 大撒币 这就是中国移动互联网的奇妙之处 再严肃
  • 2021-07-19王汕7.19国际黄金今日行情趋势分析,期货原油白银最新操作建议

    黄金行情走势分析 刚刚过去的一周 现货黄金冲高回落 美联储主席多次发表鸽派言论 多个国家新冠疫情回升 一度帮助金价创一个月新高至1834 12美元 盎司 散户和机构也看涨后市 但美国零售销售等数据表现靓丽 仍使投资者坚定美联储未来逐步收紧货
  • vue后端传值1和0怎么绑上对应得值?

    目录 前言 解决 前言 在做表格绑定后端返回得数据后 发现后端返回得有些字段值是0或者1等数字 但是我们在表格中需要展示得却是相对应得男 女 是 否等等 下面是我得解决办法 解决 我使用得是element ui库 后端返回得参数中是否签到字
  • 洛谷 P5715 三个数按照从小到大排序

    这是一个经典的例题 与比较两个数的大小的方式相同 建立一个中间变量 对数的大小进行排序 但不同的是 这个题在思路上较为复杂一点 思路 我们规定好输出的顺序从小到大依次是a b c 建立一个中间变量t 像比较两个数的大小的方法那样 对大小顺序
  • CAS,AQS,volatile,native,synchronized,lock关键字解读以及它们之间的联系(高频面试)

    1 CAS CAS比较并交换 没啥好说的 下面来说一下具体实现底层 CAS底层是由native修饰的 native是调用的本地C 代码Safe app类中的 lock IF MP方法 什么意思呢 就是说如果 IF 计算机是多核状态下 MP
  • ERROR: No matching distribution found for XXXXX 国内的镜像源来加速网络

    用国内的镜像源来加速网络 pip install 包名 i http pypi douban com simple trusted host pypi douban com 其中 trusted host pypi douban com 是
  • DLL地狱及其解决方案

    原作者 Ivan S Zapreev 概要 本文将要介绍DLL的向后兼容性问题 也就是著名的 DLL Hell 问题 首先我会列出自己的研究结果 其中包括其它一些研究者的成果 在本文的最后 我还将给出 DLL Hell 问题的一个解决方案
  • MySQL修改字段允许为空

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 环境 MySQL 5 1 命令行工具 问题 MySQL修改字段允许为空 解决 alter table topic modify state int 4 null 语法总结
  • org.apache.poi.poifs.filesystem.NotOLE2FileException: Invalid header signature;

    今天学习poi导入导出excel 然后报错valid header signature 经过排查是因为没有关闭流 workbook close 关闭之后就可以了
  • kafka常用命令汇总(亲测自用)

    文章目录 一 启动kafka 二 查看命令 三 创建topic 四 生产者 五 消费者 六 修改topic 七 删除topic 一 启动kafka kafka 2 13 3 3 1 zookeeper 3 4 14 2 13 3 3 1 前
  • 基础篇——Pycharm的安装与使用windows+ubuntu 初学者此篇够用

    简介 Pycharm是python编程过程中最为推荐的编辑调试软件之一 其使用简单 界面友好 也成了学习Python路上必须学会的软件之一 本篇教程简单介绍一下windows用户从安装到日常使用的基本功能 其他系统也可简单参考 软件安装 P
  • 嵌入式Linux学习笔记 1-14 异常与中断

    1 异常与中断的概念引入与处理流程 上图解释了何为中断何为异常 其中中断也是属于一种异常 引申拓展为ARM对异常 中断 的处理过程 1 初始化 1 设置中断源 让他可以产生中断 如某个按键可以产生中断的话 我们可以设置他的gpio引脚为中断
  • LeetCode刷题笔记--015. 三数之和

    题目描述 给定一个包含 n 个整数的数组 nums 判断 nums 中是否存在三个元素 a b c 使得 a b c 0 找出所有满足条件且不重复的三元组 注意 答案中不可以包含重复的三元组 例如 给定数组 nums 1 0 1 2 1 4
  • 【算法】蓝桥杯dfs深度优先搜索之凑算式总结

    本文 算法 蓝桥杯dfs深度优先搜索之凑算式总结 相关文章 算法 蓝桥杯dfs深度优先搜索之排列组合总结 算法 蓝桥杯dfs深度优先搜索之图连通总结 前言 曾几何时这个词现在用正适合不过了 曾几何时我还是对dfs算法一脸懵x的状态 虽说大二
  • Java中32位的最高位为1的二进制数如何转换成整数

    int类型的 3的32位表示为 11111111111111111111111111111101 将32位翻转的时候应该为 10111111111111111111111111111111 当时在LeetCode做这题的时候想的是用字符串翻
  • IDEA开发工具11---Python引入第三方包

    如要在工程文件中引入requests 但是本机上并没有安装这个包 在工程文件中输入import requests 然后Alt Enter 然后回车 IDEA会自动安装这个包
  • ESP8266 连接 MQTT

    ESP8266 连接 MQTT 主控芯片 MM32F2377 MB 039 WiFi 适配器 ESP8266 开发环境 IAR 7 80 4 MQTT 模拟服务器 MQTT fx MQTT MQTT is an OASIS standard
  • 解决windows 下使用 mingw编译器 调试时 无法跟进源码

    windows 下使用 mingw编译器 调试时 无法跟进源码 最近在公司使用QT 开发 官方在线下载的 安装的QT mingw 都是没有debug版本的 由于没有debug版本动态库 所以你调试的时候压根就无法跟进QT源代码里 那么找问题