GammaRay源码编译mingw32版本运行文件

1,目标

GammaRay 是一个允许你查看 Qt 应用程序甚至在某种程度上修改它的独特应用,GammaRay 可以在运行时实时观察程序中的 qt 代码的行为和数据结构可谓是 Debugger 的良好补充。

但是GammaRay的工作需要用和被调试程序使用同一个版本的qt和VS编译,否则GammaRay无法attach到被调试程序

 

 

 

 

网上很难找到已编译好的exe版本,因此需要基于源代码,在具体的环境下编译出可用的运行文件。

 本人经过实践,通过本文讲述GammaRay源代码如何在QT5.14和Cmake、MSVC 2015 32位版本下进行编译。

2,环境与条件

本人的电脑环境:windows10 64位

  • cmake version 3.20.3
  • QT版本:qt-opensource-windows-x86-5.14.2.exe
  • VC版本:MSVC VC++2015
  • GammaRay源代码:KDAB-GammaRay-v2.11.3-0-gf8e8373.zip

2.1 CMake安装

https://blog.csdn.net/GenuineMonster/article/details/120261628

https://cmake.org/download/

从以上网站均能下载cmake-3.20.3-windows-x86_64.msi,然后安装。

 

2.2 QT安装

https://download.qt.io/archive/qt/5.14/5.14.2/qt-opensource-windows-x86-5.14.2.exe.mirrorlist

从上述链接,选取国内站点下载。

网络不好时,可以采用磁链下载。

 

https://blog.csdn.net/jk_rou/article/details/124782688

Qt5.14.2安装、配置及测试(Win10),参考上文。

 

 

 

 

以上是安装完成后的程序组。以下假设QT安装在C:\Qt\Qt5.14.2目录下。

安装完成后,将以下路径加入PATH环境变量:

C:\Qt\Qt5.14.2\5.14.2\mingw73_32\bin

2.3 MSVC安装

网上有大量 visualc++ build tools的安装文章,此处不再赘述。

 

 

 

以上是安装完成后的程序组。

 

2.4 GammaRay源代码下载

https://github.com/KDAB/GammaRay

从以上地址下载源码,并解压。

以下假设解压到:E:\0jackRef\GammaRay\KDAB-GammaRay-v2.11.3-0-gf8e8373

 

3,代码编译步骤

主要步骤为:

  • CMake创建Makefile
  • make目标exe文件
  • install生成文件到发布目录

3.1 CMake

在源代码目录下建立子目录build-mingw32

E:\0jackRef\GammaRay\KDAB-GammaRay-v2.11.3-0-gf8e8373\KDAB-GammaRay-62bd4ed\build-mingw32

 

打开cmake-gui

指定源码路径和build路径,如下图:

 

 

 

先添加变量:cmake_make_program ,设置file类型,值为:

C:/Qt/Qt5.14.2/Tools/mingw730_32/bin/mingw32-make.exe

 

然后点击 congfigure按钮

再点击 Generate按钮

 

 

此时在build-mingw32目录下生成make所需的各种文件。

 

3.2 Make

 

 

打开:Visual C++ 2015 x86 Native Build Tools Command Prompt

 

在命令行,转入build-mingw32目录

 

输入mingw32-make,开始编译链接目标文件。

 

完成后,在E:\0jackRef\GammaRay\KDAB-GammaRay-v2.11.3-0-gf8e8373\KDAB-GammaRay-62bd4ed\build-mingw32\bin目录下,发现出现了编译完成后的运行文件:

 

 

 

 

 

3.3 Install

继续运行mingw32-make install

文件被安装到目标目录,如C:\Program Files (x86)\GammaRay\

至此,GammaRay的mingw32版本的运行文件编译完成。

 

 

4,测试运行

运行C:\Program Files (x86)\GammaRay\bin\gammaray-launcher.exe

再运行QT自带的sample程序addressbook.exe,注意先编译为mingw32版本。

发现gammaRay已经可以attach这个程序了。

 

 

 

 

点击Attach,进入跟踪界面。

 

 

可见,GammaRay确实能起到检视、操控目标程序的作用。

 

 

 

 

 

 

 

 

5,注意事项

  • 各种指令或环境,均需采用32位版本。否则会出现QT库的链接问题。即:error LNK2019: unresolved external symbol
  • 如果cmake-gui报错:cc1plus.exe程序无法正常启动(0xc000007b),请单击确定关闭应用程序。解决办法是, QTbin目录(如C:\Qt\Qt5.14.2\5.14.2\mingw73_32\bin)加到环境变量path里面去。

 

posted @ 2022-08-23 09:42  jack0424  阅读(1126)  评论(2编辑  收藏  举报