Reputation: 101
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
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:
Follow this guide for first setting up Google Crashpad
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`
$ cd ~/crashpad/crashpad
git checkout `git rev-list -n 1 --first-parent --before="2018-05-01" master`
$ 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