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

标签 ios cocoa-touch linker xamarin.ios static-libraries

我使用 Xcode 4 创建了一个 Cocoa Touch 静态库,我想在 MonoTouch 项目中使用它。我该如何继续?

这是我的静态库的内容:

我的类.h
header

MyClass.m
implementation


我在关注 THIS BLOG POST 之后使用“Build For Archiving”进行构建然后我将它生成的 libMyLib.a 添加到新的 MonoTouch 绑定(bind)项目中。
binding project

然后我用.cs替换了libMyLib.link的内容,因为THIS BLOG POST我说过了。

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

然后我将其添加到 ApiDefinition.cs
enter image description here

我将 StructsAndEnums.cs 留空。


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

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

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

然后我尝试运行该项目,但在构建输出中出现此错误

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

关于ios - 如何将 Cocoa Touch 静态库链接到 MonoTouch 项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10215860/

相关文章:

iphone - sizeWithFont : method 的替代方案

cocoa-touch - 我在代码和 Interface Builder 之间建立连接时遇到问题

ios - 如何在 iOS 设备上唯一标识用户?

c++ - Visual Studio 链接错误 LNK2005 和 LNK2020

ios - 在 xcode 中跟踪僵尸对象

ios - 当与添加到 subview 的 UITableView 一起使用时,prefersLargeTitles 无法按预期工作

ios - 如何在 ReactJS 的/apple-app-site-association 页面上提供 apple-app-site-association 文件

c - MinGW GCC - 未定义对 `atexit' 的引用

c - "Undefined reference"共享库和 ldflags 错误

ios - 如何将图标放入 UITextField 中?