2012-05-04 48 views
1

是否有人在MacOS上使用標準的Qt工具鏈而不使用xcode成功創建Google Breakpad?Qt,Google BreakPad和MacOs

我試圖讓這個圖書館工作兩天,現在仍然沒有成功。我已經成功編譯並在Windows和Linux上運行它。 (來自原始的Google-git存儲庫)。

但庫的MacOS版本已經失蹤的Makefile libbreakpad_client.a和產生libbreakpad.a不包含異常處理程序。

http://screencast.com/t/V0mNiM3kZ

,我發現這個問題幾個話題上here on a stackoverflow但最新生成文件的意見並沒有爲我工作(或者我沒有正確複製生成文件)。

我也嘗試直接從Mozilla存儲庫(版本10和11beta)下載更新的版本。但是當我試圖編譯Mozilla版本時,未定義符號還有另一個錯誤(在Mac和Linux上)。

我也發現AlekSi - breakpad-qt但這個版本也只能在Win和Linux下正常工作。在Mac下,有一些關於「未知架構 - 您是否在PDP-11上?」的錯誤

我會感謝任何能指導我如何在Mac下編譯它並讓它在Mac下工作的人,或者可以向我發送可在MacOS下使用標準make編譯並在Qt應用程序中使用的壓縮版breakpad。

謝謝 Ludek一起

+0

好奇 - 是否有你不想使用xcode的原因?我們從使用'xcodebuild'的腳本編譯breakpad,並且生成的庫可以在Qt應用程序中使用。 –

+1

我不想使用xcode的主要原因是我不知道它;-)。我是主要的MS Visual Studio開發人員,所以應用程序主要是使用Visual Studio開發的,並移植到Linux和MacOs。我已經學習了gcc,makefile和整個Linux環境,所以我也想在MacOS上使用它。第二個原因是我讀過使用xcode編譯的地方也不行。但是如果編譯可以通過一些簡單的腳本使用xcode來完成,並且在Qt qmake系統使用的編譯之後,我會很樂意提供任何指導。謝謝。 –

+0

這是我們使用的腳本:'xcodebuild -project Breakpad.xcodeproj -configuration release -target所有ARCHS = x86_64 ONLY_ACTIVE_ARCH = YES CONFIGURATION_BUILD_DIR = ../path/to/shadow/build/dir' –

回答

2

阿列克西的breakpad-QT是三歲,並在它的breakpad源不OSX上支持64位。

未能檢測到您的處理器類型是什麼讓它抱怨「未知架構 - 您是否在PDP-11上?」。

你一定需要一個更近的breakpad版本,無論是從他們的SVN,或者從我breakpad-QT叉子: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,而不是所有的(好像你只需要一個 - 和測試使用所有的失敗對我來說,儘管它產生有用的框架無論哪種方式)。

並注意,您不需要XCode本身 - 只是命令行構建工具。

爲了使用該框架在QT項目:

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

而且你應該設置。

最後:我也推了一些在我breakpad-QT叉源改變本身有它至少編譯(OSX上!)對更新breakpad版本,但我不知道如果確實正常工作

我剛開始用那個叉 - 如果你想分享經驗和/或在那裏提交一些東西,就問。

+0

而這個http://stackoverflow.com/questions/5404636/building-google-breakpad-on-mac-os-x有一些關於目前狀態的信息:你不能在OSX上使用簡單的「標準「工具,除非您手動構建自己的makefile以生成a/dylib庫。 –

+0

FWIW我在這裏提供了一些詳細的註釋:http://tech.roxee.tv/?p=25 - 雖然這可能超出了你原來的問題範圍。 –

+0

你好傢伙,鏈接已經死了:github存儲庫和roxee.tv鏈接不工作,我實際上正努力讓breakpad與我的qt代碼正確鏈接... – zmo