Crashpad是c ++应用程序的错误报告系统。 https://chromium.googlesource.com/crashpad/crashpad/+/HEAD/doc/developing.md
构建说明是
$ cd ~/crashpad/crashpad
$ gn gen out/Default
$ ninja -C out/Default
我可以构建预定义的静态库,但是我还没有找到一种方法来使用gn
或ninja
来生成共享库。
答案 0 :(得分:2)
@ bobbyg603的答案几乎是我所需要的。
但是,通常情况下,不是用手写的东西而是将其嵌入脚本中的,所以打开编辑器进行更改通常根本没有用。通过编程,您还可以使用:
gn gen out\Default --args="extra_cflags=\"/MD\""
这还将顺便更改cxx的参数。
答案 1 :(得分:1)
运行gn gen out\Default
之后,您可以编辑out\Default\toolchain.ninja
文件,为cc
和cxx
规则的命令添加额外的编译器标志。
rule cc
command = ninja -t msvc -e environment.amd64 -- cl.exe ... ${cflags} ${cflags_c} /c ...
add the /MD compiler flag after the others, here ^
答案 2 :(得分:1)
我们今天又对此进行了研究。如果您运行mobile
,则会注意到以下内容:
profile.html
要将gn args --list out\Default
标志添加到构建配置中,请运行extra_cflags
Current value (from the default) = ""
From //third_party/mini_chromium/mini_chromium/build/BUILD.gn:50
Extra flags passed to the C compiler.
Space-separated string of flags.
"cflags" are passed to all invocations of the C, C++, Objective-C, and
Objective-C++ compilers.
并将/MDd
添加到构建配置中。
答案 3 :(得分:0)
生成忍者文件后,为每个忍者文件找到开关/ MTd(调试)或/ MT(发行版)并将其更改为/ MDd或/ MD,以便创建动态库
然后,您可以使用忍者构建崩溃面板,输出仍然是lib文件,因此当您将它们链接到项目时,它们将包含在exe文件中(您不必像使用dll一样将它们添加到您的项目中)。 / p>