我正在尝试为 Mac OS X 构建Google Breakpad,作为移植应用程序的一部分,基于主干修订版 782。
Breakpad wiki指定应该构建 client/mac/Breakpad.xcodeproj,如果我理解正确,它会生成一个包含动态链接库的 Breakpad.framework。还有关于如何在 Objective-C 应用程序中使用它的示例代码,但所有这些似乎与在其他平台上似乎是正常的做事方式非常不同,包括使用 plist 和其他不属于的东西我的申请。我更愿意跨平台做尽可能相似的事情。
例如,这似乎是 Firefox 使用 Breakpad 的方式:
// include exception_handler.h from client/<platform>/handler,
// using ... here for brevity
#include "... exception_handler.h"
...
gExceptionHandler = new google_breakpad::
ExceptionHandler(tempPath.get(),
nsnull,
MinidumpCallback,
nsnull,
#if defined(XP_WIN32)
google_breakpad::ExceptionHandler::HANDLER_ALL);
#else
true);
#endif
在我的项目中,我们正在做同样的事情,只是exception_handler.lib
在 Windows 上链接。似乎在 Linux 上,Breakpad 生成了一个libbreakpad_client.a
可以以相同方式链接的对应文件,但在 Mac OS X 上却不行。如果我这样做
./configure
make
从 breakpad 根目录libbreakpad.a
生成不包含异常处理程序的 a,以及不应该构建的 libbreakpad_client.a。我很可能误解了使用 Breakpad 的正常方式以及在 Mac 上构建外部库的正常程序的任何内容,因此感谢您的帮助。
如何libbreakpad_client.a
在 Mac OS X 上构建?