Qt,Google BreakPad和MacOs

时间:2012-05-04 14:13:25

标签: macos qt google-breakpad

有没有人使用没有xcode的标准Qt工具链在MacOS上成功构建Google Breakpad?

我正在努力让这个图书馆工作两天,但仍然没有成功。我已经成功编译并在Windows和Linux上运行它。 (来自最初的Google-git存储库)。

但是MacOS版本的库缺少 libbreakpad_client.a 的makefile,生成的 libbreakpad.a 不包含异常处理程序。

http://screencast.com/t/V0mNiM3kZ

我在here on a stackoverflow上找到了关于这个问题的几个主题但是更新的makefile的建议对我不起作用(或者我没有正确复制makefile)。

我还尝试直接从Mozilla存储库(版本10和11beta)下载更新版本。但是当我尝试编译Mozilla版本时,还有另外一个未定义符号的错误(在Mac上,也在Linux上)。

我还发现了AlekSi - breakpad-qt但是这个版本在Win和Linux下也能正常工作。在Mac下,有一些关于“未知架构 - 你在PDP-11上吗?”的错误。

我会感谢任何能指出我如何编译它并让它在Mac下运行的人,或者谁可以发给我一个打包版本的破解版,可以使用标准make在MacOS下编译并在Qt应用程序中使用。

谢谢 Ludek一起

1 个答案:

答案 0 :(得分:2)

AlekSi的breakpad-qt已有三年历史了,其中的破解键源不支持OSX上的64位。

未能检测到您的处理器类型是因为它抱怨“未知架构 - 您是否使用PDP-11?”。

你肯定需要一个更近期的破解版本,无论是来自他们的svn,还是来自我的breakpad-qt fork:https://github.com/webitup/qt-breakpad

现在,如果你打算支持10.6(MACOSX_DEPLOYMENT_TARGET = 10.6),你需要使用这个https://github.com/webitup/qt-breakpad/commit/71a9fdedd827e5939ba66bfcc0cd6c1c9fbbc87b补丁破解源( - >我不认为10.6有PPC支持)

然后:

你显然设法直接从源代码编译,所以,这样做很好。

现在,如果你想用breakpad构建一个框架,并从你的qt app / lib链接到那个框架,那么Dave Mateer建议就是要走的路(他值得信赖)。以下对我有用:

cd $BREAKPAD_SOURCE_TREE
xcodebuild -sdk macosx10.7 -project src/client/mac/Breakpad.xcodeproj -configuration Release -target Breakpad ARCHS=x86_64 ONLY_ACTIVE_ARCH=YES MACOSX_DEPLOYMENT_TARGET=10.6 GCC_VERSION=com.apple.compilers.llvmgcc42 

请注意,我只构建目标Breakpad而不是All(看起来你只需要它 - 并且测试对我来说使用All失败了,尽管它确实产生了一个可用的框架)。

请注意,您不需要XCode本身 - 只需要命令行构建工具。

为了在您的QT项目中使用该框架:

mac {
        QMAKE_LFLAGS += -F$$BREAKPAD_PATH/client/mac/build/Release/
        LIBS += -framework Breakpad
}

你应该被设定。

最后:我还在我的breakpad-qt fork源本身进行了一些更改,以便至少针对更新的breakpad版本进行编译(在OSX上!),但我不知道还是如果正常工作

我只是从那个分支开始 - 如果你想分享经验和/或在那里提交一些东西,那就问问。