首页 > 解决方案 > 如何为 Qt 应用程序构建 crashpad

问题描述

我正在开发 Qt 应用程序,我想使用 crashpad 报告崩溃。我已经下载了源代码并构建了它们。

现在我想将它们静态链接到我的应用程序。

当我转到 out 文件夹时,我看到很多 .a 文件。我应该选择哪一个?

> find ./out -name *.a 
./obj/handler/libhandler.a
./obj/snapshot/libsnapshot.a
./obj/snapshot/libtest_support.a
./obj/test/libtest.a
./obj/test/libgtest_main.a
./obj/test/libgmock_main.a
./obj/util/libutil.a
./obj/third_party/mini_chromium/mini_chromium/base/libbase.a
./obj/third_party/gtest/libgtest_main.a
./obj/third_party/gtest/libgtest.a
./obj/third_party/gtest/libgmock.a
./obj/third_party/gtest/libgmock_main.a
./obj/minidump/libminidump.a
./obj/minidump/libtest_support.a
./obj/client/libclient.a

我也使用以下命令构建了它:

build/gyp_crashpad.py -Dmac_deployment_target=10.12

不知道要不要加一些参数

有人可以帮忙吗?

提前致谢

标签: c++qtstatic-librarieschromiumgn

解决方案


您应该使用gnand进行构建ninja,其中gn生成构建配置,并ninja进行实际构建。

对于 MacOS,如果要生成小型转储并将它们上传到远程服务器,则需要链接libclient.a、和所有文件。libutil.alibbase.a.oout/Default/obj/out/Default/gen/util/mach

此外,您需要打包crashpad_handler您的应用程序并确保它在运行时可用。

可以在此处找到有关构建 Crashpad 的更多信息。

可以在此处找到已与 Crashpad 集成的 MacOS Qt 应用程序示例。


推荐阅读