Evan L
Evan L

Reputation: 101

How do I build Google Crashpad with MSVC (Microsoft Visual C++) 2015?

Google Crashpad claims to compile with MSVC 2015 and MSVC 2017 (at the time of writing this post).

However, Google Crashpad depends on mini_chromium, which is a chromium project that explicitly indicates MSVC 2017 or greater is required.

I've tried compiling Crashpad following this guide, and the most up-to-date Crashpad commits, and depot_tools. I can successfully compile on MSVC 2017, but receive a considerable number of compiler errors with MSVC 2015 and mini_chromium - and I need my client software to dynamically link against libraries compiled using MSVC 2015.

This StackOverflow Question enabled me to build Crashpad into dynamic libraries. But I can only do so in MSVC 2017. When I later try to link MSVC 2015 compiled software against Crashpad build in MSVC 2017, I get this error.

Upvotes: 1

Views: 1606

Answers (1)

Evan L
Evan L

Reputation: 101

I successfully compiled Crashpad with MSVC 2015.

This required me to dig up old commits (prior to Crashpad utilizing mini_chromium aspects that only compiled with MSVC 2017).

The process I followed is as follows:

  1. Follow this guide for first setting up Google Crashpad

  2. After following the above guide, and getting depot_tools cloned (and in your PATH), go into your depot_tools directory and pull an old commit (just prior to May 1, 2018):

$ cd ~/depot_tools/

git checkout `git rev-list -n 1 --first-parent --before="2018-05-01" master`
  1. Do the same thing for your crashpad repository:

$ cd ~/crashpad/crashpad

git checkout `git rev-list -n 1 --first-parent --before="2018-05-01" master`
  1. In your crashpad repo, use gclient to synchronize your dependencies (following this guide)

$ gclient sync -D --force --reset

You should now be free to compile Crashpad with MSVC 2015 normally:

cd ~/crashpad/crashpad

gn gen out/Default

ninja -C out/Default

Upvotes: 4

Related Questions