本机链接错误无法为 XXX 不使用标准框架创建压缩展开 (MT5209)

Native linking error could not create compact unwind for XXX does not use standard frame (MT5209)

我正在使用 Xamarin 并尝试在我的 iPad 上安装一个 iOS 应用程序。

我想要link一个Ada静态库。

所以我有一个 libMyLibrary.a + libgnat.a 文件和一个 C 头代码 (MyLibrary.h)。

为了与库通信,我使用了 P/Invoke 和 DllImport(“__Internal”) 以及我的库的程序集(所以我没有任何 MTouch 参数) :

[assembly: LinkWith(“libMyLibrary.a”, SmartLink=true, ForceLoad=true)]
[assembly: LinkWith(“libgnat.a”, SmartLink=true, ForceLoad=true)]

但是当我将它部署到 iPad 时,我有很多本机 linking 错误:

Native linking error: warning: could not create compact unwind for XXX does not use standard frame (MT5209)

我尝试使用 monotuch 参数但没有成功:

有什么想法吗?


配置:

在为此苦苦挣扎了几天之后,我们想出了一些可行的办法。

我们为 Monotouch 提供的确切指令如下:

-gcc_flags "-L${ProjectDir} -lMyLibrary -lgnat -force_load ${ProjectDir}/libMyLibrary.a -Wl,-no_compact_unwind"

注意:

  • gnat lib文件放在一边libMyLibrary.a
  • libMylibrarry 在命令中被引用了两次

还有……瞧!

看来是我第一次没加好...