2011-12-06 74 views
0

我對動態加載和共享庫的概念非常新穎。儘管我完全理解如何使用dlopen()來引用共享庫中的符號,但我還沒有完全理解MacOS在幕後執行的操作,當我沒有靜態鏈接某些東西時。當向Xcode添加一個框架時,我可以選擇將它加載到我的項目中,或者我可以爲它提供某種形式的符號鏈接(實際的實現被混淆爲易於使用的界面)。在MacOS X下加載一個.Framework的步驟是什麼?

畢竟我似乎需要做的是導入頭文件porvide和API到這些框架,我可以調用他們的符號沒有麻煩。有人能向我解釋我實際上在做什麼,因爲這對我沒有意義。

回答

1

您提到的工作表與框架的實際鏈接無關。複製與鏈接選擇是指你想如何在Xcode項目中包含框架,而不是你的應用程序二進制文件。

對於系統框架,實際上並不需要做任何事情,只需導入標題即可。

對於自定義框架(您自己或第三方),框架必須駐留在應用程序啓動時的加載路徑目錄中。通常情況下,加載路徑將指向您的應用程序包的Frameworks(子)目錄,因此您必須添加一個複製文件構建階段,該階段將框架複製到您的應用程序包的Frameworks目錄。

記得要退房Apple's Framework Programming Guide,特別是the section on frameworks embedded in your app bundle

相關問題