我有一個iOS的靜態庫(u和頭文件),我想這個庫綁定到Xamarin.iOS如何爲Xamarin.iOS創建綁定?
我發現綁定步驟提上Xamarin現場here,並在此演練,他們使用的源代碼圖書館。但我只有.a
文件和頭文件。
是否有可能綁定沒有源代碼的靜態庫。
我有一個iOS的靜態庫(u和頭文件),我想這個庫綁定到Xamarin.iOS如何爲Xamarin.iOS創建綁定?
我發現綁定步驟提上Xamarin現場here,並在此演練,他們使用的源代碼圖書館。但我只有.a
文件和頭文件。
是否有可能綁定沒有源代碼的靜態庫。
您不需要將源代碼綁定到Objective Sharpie。所有你需要的是.a
庫和標題。
下面是一個例子:
sharpie bind -output Binding -sdk iphoneos8.1 \
-scope build/Headers build/Headers/SomeHeader.h \
-c -Ibuild/Headers -arch arm64
目的記號筆只輸出兩個文件:Binding/ApiDefinitions.cs
和Binding/StructsAndEnums.cs
。
然後根據需要調整綁定並再次運行。
調整完成後,現在可以將這兩個文件添加到Xamarin Studio中的綁定項目中,或直接傳遞到touch
(iOS)或mac
(MacOS X)工具以產生最終綁定。
是這是可能的通過目標SHARPIE(https://developer.xamarin.com/guides/cross-platform/macios/binding/objective-sharpie/)
目的SHARPIE使用clang
來解析其產生質量API定義的頭文件。對於Sharpie無法解析/生成的東西,您需要對自己進行標準化。這些生成的文件被稱爲ApiDefinition.cs
和StructsAndEnums.cs
。
要完成此操作,可以使用sharpie bind
命令。
一旦你已經產生了相應的模板/腳手架,然後你可以通過這些物品進入bmac
/btouch
結合的工具,這將產生(恭敬的Mac/iOS版)所用平臺的結合。
如果您仍然遇到麻煩,這裏有一個高級的例子也應該有所幫助:
該指南只是使用源構建'.a'文件。剩下的工作是使用頭文件和二進制文件完成的。目標sharpie只需要標題。 –
如果您閱讀該鏈接,他們將從源頭開始構建庫,然後綁定所述庫。所以這個鏈接告訴你所有你需要知道的,你只需要開始一半。 – JimBobBennett