问题总结
我正在尝试将Google Crashpad(Google Breakpad 的继任者)一个崩溃报告系统集成到一个动态链接到其所有外部库的软件套件中。我的问题是 Crashpad 的默认设置是构建为静态库 - 我需要动态构建它。
克隆 Crashpad 后,使用GN为构建生成.ninja文件。构建命令如下:
$ gn gen out/Default
上面的命令生成所有的 .ninja 文件。
(旁白)要生成 Visual Studio 解决方案文件 (.sln),可以使用以下生成命令:
$ gn gen out/Default --ide=vs
编译:
$ ninja -C out/Default
我试过的
这个 StackOverflow Question回答了同样的问题,建议您可以简单地修改输出的 .ninja 文件的链接标志(/MT 更改为 /MD)。但是,对所有输出文件进行 grepping 显示不存在此类标志。
Backtrace 集成指南有一个链接,指向预建的动态(共享)crashpad库。但是,他们似乎使用 Visual Studio 2017 构建了这些库,使用的工具集 (v141) 比我可以使用的更新。我需要重新构建 Crashpad 以进行动态链接,并使用 Visual Studio 2015 (v140)。