如何构建CrashPad的动态(共享)库



crastpad是C 应用程序的错误报告系统。https://chromium.googlesource.com/crashpad/crashpad//head/head/doc/developing.md

构建说明是

 $ cd ~/crashpad/crashpad
 $ gn gen out/Default
 $ ninja -C out/Default

我可以构建预定义的静态液体,但我还没有找到一种使用gnninja生成共享库的方法。

运行gn gen outDefault后,您可以编辑outDefaulttoolchain.ninja文件以在cccxx规则的命令中添加额外的编译器标志。

rule cc
  command = ninja -t msvc -e environment.amd64 -- cl.exe ... ${cflags} ${cflags_c} /c ...
                                 add the /MD compiler flag after the others, here ^

@bobbyg603的答案是几乎我需要的。

,但是像往常一样,事物不是手工编写的,而是嵌入脚本中的,因此打开编辑器以更改事物通常根本不是真正有用的。以编程方式,您也可以使用:

gn gen outDefault --args="extra_cflags="/MD""

这也将改变CXX的参数。

生成忍者文件后,对于每个忍者文件,查找switch/mtd(debug)或/mt(发行版本),然后将其更改为/mdd或/md被创建

然后,您可以使用Ninja构建CrastPad,输出仍然是LIB文件,因此当您将其链接到项目时,它们将包含在EXE文件中(您不必将其添加到项目中,因为使用DLLS)。<<<<<<<<<<<<<<<</p>

我们今天对此进行了又一次的看法。如果运行gn args --list outDefault,您会注意到以下内容:

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标志添加到您的构建配置运行gn args outDefault并将extra_cflags="/MDd"添加到构建配置。

相关内容

  • 没有找到相关文章