0

我用 Xamarin 创建了一个简单的绑定项目。绑定项目导入一个静态库MyLibrary.a。它还包含ApiDefinition.csStructAndEnum.cs通过Sharpie工具制作。

现在我有一个链接该绑定项目的 iOS 项目。MyLibrary.a为了工作需要一些框架和库(见下文)。

在此处输入图像描述

为了使其正常工作,我遵循了Xamarin 文档

在 iOS 项目中,我添加了以下内容mtouch arguments(另见附图)。

--cxx -gcc_flags "-L${ProjectDir} -framework CFNetwork -framework SystemConfiguration -framework MobileCoreServices -framework Security -framework AVFoundation -libicucore -libxml2 -libc++ -libzd -libstdc++.6.0.9"

在此处输入图像描述

当我尝试编译时,我总是以构建错误结束。

MTOUCH:错误 MT5209:本机链接错误:找不到 -libicucore 的库 MTOUCH:错误 MT5201:本机链接失败。请查看提供给 gcc 的构建日志和用户标志:-L/Users/tmp/Documents/Projects/Ovp/BindinTest.iOS -framework CFNetwork -framework SystemConfiguration -framework MobileCoreServices -framework Security -framework AVFoundation -libicucore -libxml2 -libc++ -libzd -libstdc++.6.0.9 MTOUCH:错误 MT5202:本机链接失败。请查看构建日志。

有什么线索可以让它工作吗?也许缺少了什么?

先感谢您。

4

1 回答 1

1

-libicucore -libxml2 -libc++ -libzd -libstdc++.6.0.9

这不是您为 gcc 链接传递库选项的方式。

libicucore.<extension> 要链接驻留在 中的静态或动态库,/path/to/the/lib命令行选项是:

-L/path/to/the/lib -licucore

请注意,选项lib中省略了库名称的前缀-l:链接器假定它。如果/path/to/the/lib是链接器的默认库搜索目录之一,那么您可以省略它。如果您再看一下您的 Xamarin 文档,您将看到libMyLibrary.a 与选项链接-lMyLibrary

在我的 GCC 眼中,关于这些链接选项的其他一些事情似乎很奇怪,但由于我对 iOS 开发几乎一无所知,我不会预料到你还没有遇到过的问题。

于 2015-10-26T19:40:34.413 回答