通过vcpkg编译breakpad并在qt项目中应用,VS编译器

编译brealpad是一个非常麻烦的事情,亲测编译成功后在项目中引用也是各种版本不匹配,所以采用vcpkg直接安装。

1、vcpkg

需要先在本机环境中安装vcpkg。

在Windows下开发C++程序时,常用依赖包的管理是一个头疼的问题。Vcpkg是一个命令行包管理工具,它可以极大地简化三方库的获取、安装、使用和部署流程。详情查看链接:https://zhuanlan.zhihu.com/p/87391067

2、vcpkg安装breakpad

先cd到vcpkg的安装目录,然后执行下条指令,:x64-windows表示安装win64版本。

./vcpkg install breakpad:x64-windows

因为众所周知的原因,下载可能会很慢。不过有大佬给了国内镜像。详情查看链接链接:

https://blog.csdn.net/jackboos/article/details/105026109

3、项目中使用breakpad

查看vcpkg文档后,看介绍说可以在执行一些命令后直接引用vcpkg安装的库。一番折腾后没有成功。所以采用直接引用依赖库的方式。

1、如果执行了上文中的安装breakpad命令,应该可以在如下图中的位置找到安装好的库文件。

vcpkg/packages/breakpad_x64-windows

2、将breakpad_x64-windows拷贝到项目的同级目录中。打开项目属性页,在c/c++选项中的附加包含目录中添加

breakpad_x64-windows\include

链接器选项中的附加库目录添加(release模式)

breakpad_x64-windows\lib;

附加依赖项中添加上个文件夹里两个库的名字

libbreakpad_clientd.lib;libbreakpadd.lib;

即可配置完成。
3、在main文件中添加如下代码测试(在编译时会报错某某文件找不到,只要在引用前面加上breakpad_x64-windows/include/即可。如果不想自己一个个添加也可用我下面提供的)

#include "breakpad_x64-windows/include/client/windows/handler/exception_handler.h"

// 触发crash来测试
void crash() {
    volatile int* a = (int*)(NULL);
    *a = 1;
}

bool callback(const wchar_t* dump_path, const wchar_t* id,
              void* context, EXCEPTION_POINTERS* exinfo,
              MDRawAssertionInfo* assertion,
              bool succeeded) {
    if (succeeded) {
        qDebug() << "Create dump file success";
    } else {
        qDebug() << "Create dump file failed";
    }
    return succeeded;
}


int main(int argc, char* argv[]) {
    QApplication a(argc, argv);

    //获取程序当前运行目录
    QString appDirPath = QCoreApplication::applicationDirPath() + "/crash";

    QDir dir;
    if (!dir.exists(appDirPath)) {
        bool res = dir.mkpath(appDirPath);
        qDebug() << "New mkdir " << appDirPath << " " << res;
    }

    google_breakpad::ExceptionHandler eh(
        L".", NULL, callback, NULL,
        google_breakpad::ExceptionHandler::HANDLER_ALL);


    crash();
    return a.exec();
}

4、vs中realease模式下,如果想直接定位到代码中需要修改一些配置选项。
分别是c/c++中的调试信息格式配置优化配置。链接器的调试选项中选择生成调试信息。以下选项内容并不绝对,自己测试修改。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
5、资源
https://download.csdn.net/download/qq_45988470/64499365

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Qt是一种用于开发跨平台图形用户界面的框架,Google Breakpad是一种开源的异常报告库。要下载qt google breakpad,首先需要在Qt官方网站上下载Qt框架的安装包。在官网上选择对应的操作系统(例如Windows,Linux,Mac等),然后选择所需的Qt版本(例如Qt5,Qt6等)。下载完成后,运行安装包并按照安装向导的指示进行安装。安装完成后,可以在系统找到Qt的安装目录。 然后,需要在Google Breakpad的官方网站上下载Breakpad的源代码。在官网上找到源代码下载页面,并选择所需的版本。下载完成后,解压缩文件并进入源代码的目录。 接下来,需要将Breakpad源代码与Qt框架进行配置和构建。通过命令行进入Breakpad源代码目录,在该目录下创建一个新的构建目录,并进入该目录。使用CMake命令来配置BreakpadQt的构建。具体的配置命令根据不同的操作系统和需求而定。配置完成后,使用make或ninja等构建工具进行构建。 构建完成后,将生成的Breakpad库文件(如libbreakpad.so或breakpad.dll等)与Qt应用程序进行链接。可以在Qt应用程序的.pro文件添加链接库的配置,或者在构建命令进行链接。完成链接后,重新编译和运行Qt应用程序即可使用Google Breakpad进行异常报告的捕获和处理。 综上所述,下载Qt和Google Breakpad的过程包括下载Qt框架安装包、下载Breakpad源代码、配置和构建BreakpadQt的链接,并在Qt应用程序使用Breakpad进行异常报告的处理。 ### 回答2: QT是一款强大的跨平台应用开发框架,Google Breakpad是一套用于应用程序崩溃报告的开源工具。想要在QT下载Google Breakpad,可以按照以下步骤进行操作。 首先,在浏览器搜索"Google Breakpad"并进入官方网站或GitHub页面。在该页面,可以找到相关的下载链接和文档。 其次,根据自己的操作系统选择合适的版本下载。Google Breakpad支持多种操作系统,如Windows、Linux和Mac OS X等。选择与QT兼容的版本进行下载。 下载完成后,解压缩下载的文件。其包含了Google Breakpad的源代码和示例程序等。 接下来,可以根据Google Breakpad提供的文档和示例程序进行学习和使用。文档详细介绍了Google Breakpad的使用方法和参数设置等。 最后,根据QT的需求,将Google Breakpad集成到QT应用程序。通过在QT项目引入Google Breakpad的代码和相关文件,可以实现应用程序的崩溃报告和分析功能。 总之,下载并集成Google BreakpadQT可以帮助开发者更好地追踪和分析应用程序的崩溃问题,提高应用程序的可靠性和稳定性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值