Сборка Google Breakpad на Mac OS X

Я пытаюсь собрать Google Breakpad для Mac OS X как часть портирования приложения на основе ревизии основной линии 782.

Вики Breakpad указывает, что нужно создать client / mac / Breakpad.xcodeproj, который создает Breakpad.framework, включая динамически подключаемую библиотеку, если я правильно понимаю. Также есть образец кода, показывающий, как использовать это из приложения Objective-C, но все это кажется очень отличным от того, что кажется нормальным способом делать что-то на других платформах, включая использование списков и других вещей, которые не являются частью моего приложения. Я бы предпочел делать вещи как можно более похожими на разных платформах.

Например, this похоже, что Firefox использует Breakpad:

// include exception_handler.h from client//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

из корневого каталога панели управления, появится ] Создается libbreakpad.a , который не содержит обработчика исключений, и libbreakpad_client.a, который не должен быть собран. Я вполне мог неправильно понять что угодно как в обычном способе использования Breakpad, так и в обычной процедуре создания внешних библиотек на Mac, поэтому любая помощь приветствуется.

Как мне собрать libbreakpad_client. например, я хотел бы напечатать первый элемент после некоторого форматирования первого элемента Apple, который в нашем случае является только «американским»?

Дополнительная информация Приведенная выше структура данных была создана путем синтаксического анализа входного файла в функции Python. Однако после создания он остается таким же для этого запуска.

Я использую эту структуру данных в своей функции.

Итак, если файл изменится, при следующем запуске этого приложения содержимое файла будет другим и, следовательно, содержимое этой структуры данных будет другим, но формат останется прежним. Итак, вы видите, что в своей функции я не знаю, что первый элемент в Apple - это «американский» или что-то еще, поэтому я не могу напрямую использовать «американский» в качестве ключа.

103
задан simhumileco 14 March 2019 в 16:56
поделиться