我正在研究Xamarin並嘗試在我的iPad上安裝iOS應用程序。原生鏈接錯誤無法爲XXX創建緊湊展開不使用標準框架(MT5209)
我想鏈接一個Ada靜態庫。
所以我有一個libMyLibrary.a
+ libgnat.a
文件和一個C頭代碼(MyLibrary.h
)。
- 在Xamarin中,我創建了一個綁定庫項目並添加了我的庫。
- 在Xamarin中,我將上述項目添加爲我的iPad應用程序的參考。
首先,我使用P磁帶庫通信/有DllImport(「__Internal」)
和組裝我的LIB調用(所以我沒有任何的mTouch參數):
[assembly: LinkWith(「libMyLibrary.a」, SmartLink=true, ForceLoad=true)]
[assembly: LinkWith(「libgnat.a」, SmartLink=true, ForceLoad=true)]
但是,當我其部署到iPad上我有很多本地連接錯誤:
Native linking error: warning: could not create compact unwind for XXX does not use standard frame (MT5209)
我試圖使用MonoTouch的論點,但沒有成功:
-Wl,-no_compact_unwind
!看到ld: warning: too many personality routines for compact unwind to encode和https://software.intel.com/en-us/forums/intel-math-kernel-library/topic/279914LDFLAGS="-Wl,-no_compact_unwind
:看https://bugzilla.mozilla.org/show_bug.cgi?id=1188030#c14
任何想法?
配置:
- 的iOS 10.3.2
- Xamarin 6.3
- 部署目標10.3
我很佩服編譯C#代碼爲iOS,同時鏈接到一個靜態阿達LIB的問題。對於評論中更有幫助的部分:您是否檢查過靜態Ada庫是否爲正確的體系結構(即iOS ARM體系結構)編譯?也許嘗試將它鏈接到ObjC以確保它可以工作。 – flyx
你好,這個問題是合法的,是的:我有Ada庫編譯爲正確的目標和lib接口C兼容,我相信這是一個安全的選擇)。事實上,我找到了解決方案,我需要一些時間來發布答案。 – LoneWanderer