RuL*_*ViC 8 c++ qt static-libraries chromium gn
我正在开发 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
Run Code Online (Sandbox Code Playgroud)
我也使用这个命令构建了它:
build/gyp_crashpad.py -Dmac_deployment_target=10.12
Run Code Online (Sandbox Code Playgroud)
我不知道我是否应该添加一些参数
有人可以帮忙吗?
提前致谢
gn通过和构建 Crashpad ninja,其中gn生成构建配置,并ninja进行实际构建。
对于 macOS Qt 应用程序,要生成小型转储并将其上传到远程服务器,需要将其与 Crashpad 库链接libcommon.a, libclient.a, libutil.a, libbase.a, mig_output.a:
# Crashpad libraries
LIBS += -L$$PWD/Crashpad/Libraries/MacOS/$$ARCH -lcommon
LIBS += -L$$PWD/Crashpad/Libraries/MacOS/$$ARCH -lclient
LIBS += -L$$PWD/Crashpad/Libraries/MacOS/$$ARCH -lbase
LIBS += -L$$PWD/Crashpad/Libraries/MacOS/$$ARCH -lutil
LIBS += -L$$PWD/Crashpad/Libraries/MacOS/$$ARCH -lmig_output
Run Code Online (Sandbox Code Playgroud)
该应用程序还需要与系统库bsm、框架AppKit和Security:
# System libraries
LIBS += -L/usr/lib/ -lbsm
LIBS += -framework AppKit
LIBS += -framework Security
Run Code Online (Sandbox Code Playgroud)
此外,您需要crashpad_handler与应用程序打包并确保它在运行时可用。
可以在此处找到已与 Crashpad 集成的 macOS Qt 应用程序示例。