将stdlibs与Xamarin联系起来

时间:2015-10-26 16:05:17

标签: ios xamarin linker xamarin.mac

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

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

enter image description here

为了使其正常工作,我遵循了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“

enter image description here

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

  

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:本机链接失败。请查看构建日志。

任何使其运作的线索?也许缺少什么?

提前谢谢你。

1 个答案:

答案 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开发几乎一无所知,我不会预料到 你还没有遇到的问题。