1

Google Crashpad 声称可以使用 MSVC 2015 和 MSVC 2017 进行编译(在撰写本文时)。

但是,Google Crashpad 依赖于mini_chromium,这是一个明确指示需要 MSVC 2017 或更高版本的 chromium 项目。

我尝试按照本指南、最新的 Crashpad 提交和depot_tools 编译 Crashpad。我可以在 MSVC 2017 上成功编译,但是在使用 MSVC 2015 和 mini_chromium 时会收到大量编译器错误——我需要我的客户端软件动态链接到使用 MSVC 2015 编译的库。

这个 StackOverflow 问题使我能够将 Crashpad 构建到动态库中。但我只能在 MSVC 2017 中这样做。当我稍后尝试将 MSVC 2015 编译的软件与 MSVC 2017 中的 Crashpad 构建链接时,我收到此错误

4

1 回答 1

3

我用 MSVC 2015 成功编译了 Crashpad。

这需要我挖掘旧的提交(在 Crashpad 使用仅使用 MSVC 2017 编译的 mini_chromium 方面之前)。

我遵循的过程如下:

  1. 按照本指南首先设置 Google Crashpad

  2. 遵循上述指南并克隆 depot_tools(并在您的 PATH 中)后,进入您的 depot_tools 目录并拉取旧提交(就在 2018 年 5 月 1 日之前):

$ cd ~/depot_tools/

git checkout `git rev-list -n 1 --first-parent --before="2018-05-01" master`
  1. 对您的 crashpad 存储库执行相同的操作:

$ cd ~/crashpad/crashpad

git checkout `git rev-list -n 1 --first-parent --before="2018-05-01" master`
  1. 在您的 crashpad 存储库中,使用gclient同步您的依赖项(遵循本指南

$ gclient sync -D --force --reset

您现在应该可以正常使用 MSVC 2015 编译 Crashpad:

cd ~/crashpad/crashpad

gn gen out/Default

ninja -C out/Default

于 2019-08-16T23:22:16.327 回答