将标准库与 Xamarin 链接
Linking stdlibs with Xamarin
我用 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: error MT5209: Native linking error: library not found for
-libicucore MTOUCH: error MT5201: Native linking failed. Please review the build log and the user flags provided to 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: error MT5202: Native linking failed. Please review the build log.
有什么线索可以让它发挥作用吗?也许缺少什么?
提前谢谢你。
-libicucore -libxml2 -libc++ -libzd -libstdc++.6.0.9
这不是您为 gcc linkage 传递库选项的方式。
到link静态或动态库libicucore.<extension>
驻留在 /path/to/the/lib
中,命令行选项是:
-L/path/to/the/lib -licucore
注意省略了库名的lib
前缀
-l
选项:linker 假设它。如果 /path/to/the/lib
是 linker 之一
库的默认搜索目录然后你可以省略它。如果你有
再看看您的 Xamarin 文档,您会看到 libMyLibrary.a
使用选项 -lMyLibrary
编辑 link。
关于这些 linkage 选项的一些其他事情在我的 GCC 眼中似乎很奇怪,
但由于我对 iOS 的开发几乎一无所知,所以我不会预料到
你还没有遇到的问题。
我用 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: error MT5209: Native linking error: library not found for -libicucore MTOUCH: error MT5201: Native linking failed. Please review the build log and the user flags provided to 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: error MT5202: Native linking failed. Please review the build log.
有什么线索可以让它发挥作用吗?也许缺少什么?
提前谢谢你。
-libicucore -libxml2 -libc++ -libzd -libstdc++.6.0.9
这不是您为 gcc linkage 传递库选项的方式。
到link静态或动态库libicucore.<extension>
驻留在 /path/to/the/lib
中,命令行选项是:
-L/path/to/the/lib -licucore
注意省略了库名的lib
前缀
-l
选项:linker 假设它。如果 /path/to/the/lib
是 linker 之一
库的默认搜索目录然后你可以省略它。如果你有
再看看您的 Xamarin 文档,您会看到 libMyLibrary.a
使用选项 -lMyLibrary
编辑 link。
关于这些 linkage 选项的一些其他事情在我的 GCC 眼中似乎很奇怪, 但由于我对 iOS 的开发几乎一无所知,所以我不会预料到 你还没有遇到的问题。