繫結原生架構
有時候原生連結庫會以架構的形式散發。 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 .