共用方式為


繫結原生架構

有時候原生連結庫會以架構的形式散發。 Objective Sharpie 提供方便的功能,可透過 -framework 選項系結正確定義的架構。

例如,系結適用於 iOS 的 Adobe Creative SDK Framework 很簡單:

$ sharpie bind \
    -framework ./AdobeCreativeSDKFoundation.framework \
    -sdk iphoneos8.1

在某些情況下,架構會指定 Info.plist ,指出應該編譯架構的 SDK。 如果此資訊存在且未傳遞明確-sdk選項,Objective Sharpie 會從架構的 Info.plist 推斷它(DTSDKName索引鍵或 和 DTPlatformVersion 索引鍵的組合DTPlatformName)。

選項 -framework 不允許傳遞明確的頭檔。 根據架構名稱,會根據慣例來選擇傘頭檔。 如果找不到雨傘標頭,Objective Sharpie 將不會嘗試系結架構,而且您必須提供正確的雨傘頭檔來剖析,以及 clang 的任何架構自變數,以手動執行系結,以及 clang 的任何架構自變數(例如 -F 架構搜尋路徑選項)。

在幕後,指定 -framework 只是快捷方式。 下列系結自變數與 -framework 上述的速記相同。 特別重要的是 -F . 提供給 clang 的架構搜尋路徑(請注意命令中所需的空格和期間)。

$ sharpie bind \
    -sdk iphoneos8.1 \
    ./AdobeCreativeSDKFoundation.framework/Headers/AdobeCreativeSDKFoundation.h \
    -scope AdobeCreativeSDKFoundation.framework/Headers \
    -c -F .