ios – 如何将Cocoa Touch静态库链接到MonoTouch项目?

我使用
Xcode 4创建了一个Cocoa Touch静态库,我想在MonoTouch项目中使用它.我该怎么办?

这是我的静态库的内容:

MyClass.h

MyClass.m

在遵循THIS BLOG POST之后,我使用“Build For Archiving”构建,然后我将它生成的libMyLib.a添加到新的MonoTouch Binding项目中.

然后我替换了libMyLib.linkwith.cs的内容,因为THIS BLOG POST这样说.

[assembly: LinkWith ("libMyLib.a", LinkTarget.ArmV6 | LinkTarget.ArmV7 | LinkTarget.Simulator, ForceLoad = true, Frameworks="CoreGraphics QuartzCore UIKit")]

然后我把它添加到ApiDefinition.cs

我把StructsAndEnums.cs留空了.

然后我使用Release构建并从bin文件夹中获取dll并将其添加到MonoTouch iPad项目的根目录,并将其添加到引用中.

然后,按照THIS ARTICLE中的说明操作后,我将mtouch参数设置为this

-gcc_flags "-L${ProjectDir} -lMyLib -force_load -ObjC"

然后我尝试运行该项目,我在Build Output中得到了这个错误

error MT5201: Native linking failed. Please review user flags provided to gcc: “-L/Users/herpderp/Projects/TestProject/TestProject” “-lMyLib” -force_load “/Users/herpderp/Projects/TestProject/TestProject/libMyLib.a” “-L/Users/herpderp/Projects/TestProject/TestProject” “-lMyLib” “-force_load” “-ObjC”

最佳答案 该目录包含一个完整示例,显示了将Objective-C库与MonoTouch集成的各种方法:

https://github.com/xamarin/monotouch-samples/tree/master/BindingSample

点赞