Как создать Google Crashpad с помощью MSVC (Microsoft Visual C++) 2015?

Google Crashpad утверждает, что компилируется с MSVC 2015 и MSVC 2017 (на момент написания этого поста).

Однако Google Crashpad зависит от mini_chromium, проекта chromium, который явно указывает, что требуется MSVC 2017 или более поздней версии.

Я попытался скомпилировать Crashpad, следуя этому руководству, самые последние коммиты Crashpad и depot_tools. Я могу успешно скомпилировать на MSVC 2017, но получаю значительное количество ошибок компилятора с MSVC 2015 и mini_chromium, и мне нужно, чтобы мое клиентское программное обеспечение динамически связывалось с библиотеками, скомпилированными с использованием MSVC 2015.

Этот вопрос StackOverflow включен мне встроить Crashpad в динамические библиотеки. Но я могу сделать это только в MSVC 2017. Когда я позже пытаюсь связать скомпилированное программное обеспечение MSVC 2015 со сборкой Crashpad в MSVC 2017, я получаю эта ошибка.


person Evan L    schedule 16.08.2019    source источник


Ответы (1)


Я успешно скомпилировал Crashpad с помощью MSVC 2015.

Это потребовало от меня поиска старых коммитов (до того, как Crashpad использовал аспекты mini_chromium, которые компилировались только с MSVC 2017).

Процесс, которому я следовал, выглядит следующим образом:

  1. Следуйте этому руководству для первой настройки Google Crashpad.

  2. После выполнения приведенного выше руководства и получения клонированного depot_tools (и в вашем PATH), перейдите в каталог depot_tools и извлеките старый коммит (незадолго до 1 мая 2018 г.):

$ cd ~/depot_tools/

git checkout `git rev-list -n 1 --first-parent --before="2018-05-01" master`
  1. Сделайте то же самое для репозитория аварийной панели:

$ cd ~/crashpad/crashpad

git checkout `git rev-list -n 1 --first-parent --before="2018-05-01" master`
  1. В репозитории аварийной панели используйте gclient для синхронизации зависимостей (следуя это руководство)

$ gclient sync -D --force --reset

Теперь вы можете нормально компилировать Crashpad с MSVC 2015:

cd ~/crashpad/crashpad

gn gen out/Default

ninja -C out/Default

person Evan L    schedule 16.08.2019