1

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

我现在正在尝试在这个图书馆工作两天,但仍然没有成功。我已经成功编译并在 Windows 和 Linux 上运行它。(来自原始 Google-git 存储库)。

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

http://screencast.com/t/V0mNiM3kZ

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

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

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

我将感谢任何能告诉我如何编译它并让它在 Mac 下工作的人,或者能给我发送一个打包版本的 breakpad,它可以在 MacOS 下使用标准 make 编译并在 Qt 应用程序中使用。

谢谢卢德克

4

1 回答 1

2

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

未能检测到您的处理器类型是它抱怨“未知架构 - 你在 PDP-11 上吗?”的原因。

您肯定需要更新的 breakpad 版本,无论是来自他们的 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修补 breakpad 源(-> 我不认为 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 上!),但我不知道是否正常工作。

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

于 2012-06-08T15:04:35.567 回答