我用Xamarin创建了一个简单的绑定项目。绑定项目导入静态库MyLibrary.a
。它还包含通过sharpie工具制作的ApiDefinition.cs
和StructAndEnum.cs
。
现在我有一个链接该绑定项目的iOS项目。 MyLibrary.a
为了工作需要一些框架和库(见下文)。
为了使其正常工作,我遵循了Xamarin documentation。
在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:本机链接失败。请查看构建日志。
任何使其运作的线索?也许缺少什么?
提前谢谢你。
答案 0 :(得分: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开发几乎一无所知,我不会预料到 你还没有遇到的问题。