我用Xamarin创建了一个简单的绑定项目。绑定项目导入静态库MyLibrary.a。它还包含ApiDefinition.cs和StructAndEnum.cs,它们都是通过sharpie制作的。
现在,我有了一个链接绑定项目的iOS项目。为了工作,MyLibrary.a需要一些框架和库(见下文)。

为了让它发挥作用,我跟随了Xamarin文档。
在iOS项目中,我添加了以下mtouch arguments (请参见附图)。
-cxx -gcc_flags "-L${ProjectDir} -framework CFNetwork -framework SystemConfiguration -framework MobileCoreServices -framework Security AVFoundation -libicucore -libxml2 -libc++ -libzd -libstdc++.6.0.9“

当我试图编译时,我总是以生成错误结尾。
错误MT5209:本机链接错误:-libicucore未找到库MTOUCH: error MT5201:本机链接失败。请查看构建日志和提供给gcc的用户标志:-L/Users/tmp/Documents/Projects/Ovp/BindinTest.iOS -framework CFNetwork -framework SystemConfiguration -framework MobileCoreServices -framework -framework AVFoundation -libicucore -libc++ -libzd -libstdc++.6.0.9 MTOUCH: error MT5202:本机链接失败。请查看生成日志。
有什么线索可以让它发挥作用吗?也许有什么东西不见了?
提前谢谢你。
发布于 2015-10-26 19:40:34
-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开发的任何事情,我不会预料到你还没有遇到的问题。
https://stackoverflow.com/questions/33350353
复制相似问题