sentry-native 在 windows 平台上搭建

官方文档:https://github.com/getsentry/sentry-native 

虽说官方文档有搭建步骤,奈何我用 git bash 试了 n 遍,最终都会报一大堆错误,白白浪费了我快一个下午的时间

最终找到了一位大哥的博客,里面也介绍了他遇到的坑,跟随他的方法,编译成功了

遂把一些更为详尽的步骤记录下来,供有 sentry 搭建需求的友友参考

sentry-native 版本:0.4.15

  1. 打开 CMake Gui 程序,千万不用要 command 窗口编译,一堆错误
  2. 输入源文件路径和输出的编译路径,注意:如果你的项目是 x86 的话,在填输出的编译路径时会提醒你是否选择 win32
  3. 先点击页面左下角的 Configure 按钮,会自动生成相应的选项
  4.  

  5. 改下 SENTRY_BACKEND 的 Value 为 breakpad,并且不要勾选 SENTRY_BUILD_SYSTEM

  6.   

  7.  

     最后可以再点击 Configure,没啥问题后点击 Generate 生成 breakpad 的工程文件,如下

  8. 确定生成了 breakpad 的工程文件,在 CMake Gui 页面上选择打开 Project 的工具,我这里使用的 vs2019
  9.  

  10. 使用 Release 版本编译后,会发现两个错误,将它们注释即可
  11.  

  12.  

  13. 再重新编译就 OK 了,生成的 lib 文件和 dll 文件在项目文件下
  14.  

  15. 接下来就可以在你自己的项目中配置 sentry 的头文件和库文件,注意在配置完相关路径后,还是需要添加静态链接才可以
#pragma comment(lib, "sentry.lib")

  

注意:如果是使用 breakpad 编译的 dll,在程序崩溃时是无法抓到错误日志的,需要使用 crashpad 创建 dll

编译过程:我们需要先在 crashpad_build 文件中打开工程,编译出 sentry_native 项目需要的静态文件库

 

最后再打开 sentry_native.sln

 

在 crashpad.sln 的编译过程中会出现很多  warning C4819 错误,我这边的解决方法是把错误的源文件的编码格式使用 notepad++ 一一改成 UTF8-BOM 即可解决


补充:

对于之前介绍的错误,特别是 sentry 附带的 example 在编译后会因字符报错,这边我们可以取消勾选 SENTRY_BUILD_EXAMPLES 和 SENTRY_BUILD_TESTS

 

对于 warning C4819 错误,因为涉及到的文件太多了,我们可以在编译器中将警告视为错误改为否

 

 如果需要编译静态库,建议按照下面这个设定来,这样库跑起来不会依赖 VC 库了

 

 

 

 

 

 

 

posted @ 2022-02-25 19:27  strive-sun  阅读(894)  评论(0)    收藏  举报