1

我正在使用

Xamarin Studio - 4.0.4(内部版本 2) Mono - 2.10.11 Xamarin.iOS - 6.3.5.43 Mac OS X - 10.8.2

在构建包装绑定类时,我收到一条警告,提示“System.Runtime.CompilerServices.ExtensionAttribute”存在于多个程序集中。它只是一个警告,但会构建 .dll 文件。

目标生成绑定:

工具 /Developer/MonoTouch/usr/bin/btouch 执行以参数开始: /unsafe /d:DEBUG ApiDefinition.cs /s:StructsAndEnums.cs /tmpdir:obj/Debug/ios/ /sourceonly:obj/Debug/ios//来源.list

警告 CS1685:

预定义类型System.Runtime.CompilerServices.ExtensionAttribute' is defined in multiple assemblies. Using definition frommscorlib'

/Developer/MonoTouch/usr/lib/mono/2.1/mscorlib.dll(与先前警告相关的符号位置) /Library/Frameworks/Mono.framework/Versions/2.10.11/lib/mono/2.0/System.Core .dll(与先前警告相关的符号位置)

但是在另一个项目中使用创建的绑定类时,它会给出错误说编译到本机代码 - '错误 MT5202:本机链接失败。请查看构建日志。

在构建日志中 ld: file not found: /var/folders/w4/xsz8x8vx0_51hjxj474r1_fxhlq7x3/T/tmp9aef74.tmp/libPrint.a collect2: ld returned 1 exit status

注意:libPrint.a 是我的静态库

-更新-

将 libPrint.a 文件绑定到包装类时,应将 .a 文件添加到项目中,而不是在“资源”文件夹中。这解决了我面临的问题。

4

2 回答 2

1

libPrint.a 是否支持您正在为其构建 iOS 项目的架构?

IOW,如果你正在为模拟器编译,你的 libPrint.a 需要支持 i386。

如果您正在为设备编译,它需要支持您所针对的任何 ARM 架构。

于 2013-07-11T18:49:32.760 回答
1

该警告是因为 System.Runtime.CompilerServices.ExtensionAttribute' 在多个程序集中存在歧义。

撇开警告不谈,真正的问题是添加 libPrint.a 文件时。这是一个愚蠢的小错误。xamarin的文档清楚地解释了它。它应该被添加到项目中,而不是在“资源”文件夹中。这解决了我在将 .dll 文件用于项目时遇到的错误。

于 2013-07-12T04:16:17.090 回答