2012-12-06 127 views
2

我有一個應用程序,可以在OS X上使用clang ++和g ++版本4.7進行編譯。我編寫的應用程序使用第三方SDK,例如opencv,glfw等等。到目前爲止,我可以創建一個可執行文件,但它只會在我自己的計算機上運行,​​因爲它們依賴關係。 OS X開發人員使用哪些工具來導出他們的應用程序(即,使它們可安裝或包含所有庫的可執行文件)?還有一個限制,我目前的操作系統是山獅,但是我希望它能夠向後兼容至少10.6或10.5,這是x64開關。爲OS X製作可執行的可執行文件

+1

https://developer.apple.com/library/mac/#documentation/developertools/conceptual/PackageMakerUserGuide/Introduction/Introduction.html – trojanfoe

回答

0

您打算將您的應用分配爲application bundle,還是僅將其作爲可執行二進制文件?

如果它是一個應用程序包,並且您可以獲取並鏈接到第三方SDK作爲框架(例如OpenCV.framework),那麼您可以通過將它們複製到AppName.app/Contents/Frameworks/文件夾中來分發框架。

如果它不是應用程序包,或者無法將第三方SDK作爲框架獲得,那麼您需要靜態鏈接到這些SDK。有關如何做到這一點的更多信息,請參閱this question

要構建早期版本的OS X,請在構建程序之前設置MACOSX_DEPLOYMENT_TARGET環境變量。例如:

export MACOSX_DEPLOYMENT_TARGET=10.6 
+0

我推薦他去捆綁,這是幾乎每個人現在做的事情OSX。 –

+0

因此,我現在沒有使用任何xcode工具鏈。我將研究這個捆綁包的工作原理。感謝您的信息 – user1881587

+0

@ user1881587在Xcode之外創建應用程序包相當簡單。您可以查看系統中安裝的其他應用程序以查看捆綁包的佈局。你需要做的主要事情是創建一個Info.plist文件,併爲你的應用程序填充正確的值。 – sjs

0

首先,學習如何製作一個包,它會爲您節省很多的痛苦。其次,能夠編譯爲舊版本的OSX,但實際上它可能很難使其工作。最好保持舊的安裝。