2

我正在开发 Xamarin 并尝试在我的 iPad 上安装 iOS 应用程序。

我想链接一个 Ada 静态库。

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

  • 在 Xamarin 中,我创建了一个绑定库项目并添加了我的库。
  • 在 Xamarin 中,我添加了上述项目作为对我的 iPad 应用程序的引用。

为了与库通信,我使用了 P/InvokeDllImport(“__Internal”)和我的库的一个程序集(所以我没有任何 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 参数但没有成功:

有任何想法吗?


配置:

  • iOS 10.3.2
  • Xamarin 6.3
  • 部署目标 10.3
4

1 回答 1

3

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

我们给 Monotouch 的确切指令如下:

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

请注意:

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

而且...瞧!

显然,我第一次没有正确添加它......

于 2017-06-20T10:07:13.447 回答