C# 为Xamarin.iOS中的2个相关静态库创建绑定
我对Xamarin.iOS的绑定有问题 我有两个图书馆: 利巴 B.a.图书馆 libB.a依赖于libA.a类。在libA中,我有一门课:C# 为Xamarin.iOS中的2个相关静态库创建绑定,c#,ios,binding,xamarin.ios,xamarin,C#,Ios,Binding,Xamarin.ios,Xamarin,我对Xamarin.iOS的绑定有问题 我有两个图书馆: 利巴 B.a.图书馆 libB.a依赖于libA.a类。在libA中,我有一门课: namespace ABC { [BaseType (typeof (NSObject))] public partial interface ClassAbc { [Export ("setString:")] void SetString (string abc); } } 在libB中,我有以
namespace ABC {
[BaseType (typeof (NSObject))]
public partial interface ClassAbc {
[Export ("setString:")]
void SetString (string abc);
}
}
在libB中,我有以下代码:
namespace ABCUsage {
[BaseType (typeof (NSObject))]
public partial interface ClassAbcUsage {
[Export ("setAbc:")]
void SetAbc (ClassAbc abc);
}
}
我没有libA.a和libB.a的源代码,只有通用静态库和头
我试图添加libA绑定项目和final A.dll作为libB绑定的参考,但它显示“未找到命名空间ABC”
如何为libB创建正确的绑定?您好,您可以在单个绑定项目中绑定任意多个库,只需确保指定完全限定的类型名即可
namespace ABC {
[BaseType (typeof (NSObject))]
public partial interface ClassAbc {
[Export ("setString:")]
void SetString (string abc);
}
}
namespace ABCUsage {
[BaseType (typeof (NSObject))]
public partial interface ClassAbcUsage {
[Export ("setAbc:")]
void SetAbc (ABC.ClassAbc abc);
//^^^^^
}
}
希望这有帮助。天哪!它起作用了。我甚至无法想象我可以在绑定项目中添加几个静态库。谢谢大家!@dalexsoto,这确实是一个很好的答案!然而,尽管已经快五年了,哈哈,你能回答一下在这两个库连接的上下文中,应用程序流是什么吗?我的意思是,如果我们调用库1中的一些代码,这需要访问库2中的一些方法(从它的本机代码),那么这些方法是如何工作的?@Agat如果它们是静态库,那么它应该按原样工作,因为本机链接器应该解决这个问题,并保留对象,除非本机库正在动态解析内容。当然,bot本机静态库应该添加到同一个绑定项目中。@dalexsoto,这两个静态库都是由Sharpie从*.framework转换而来的。那么,看起来,好像没事吧?但我想澄清的是:我可以将两个*.a文件添加到一个绑定项目中,而构建器(链接器)将自己解决所有问题?我的意思是,如果其中一个*.a文件引用了第二个?(我的意思是,在本地层面上)。