【问题标题】:Xamarin iOS - Binding Project - WarningXamarin iOS - 绑定项目 - 警告
【发布时间】:2013-07-09 07:02:14
【问题描述】:

我正在使用

Xamarin Studio - 4.0.4(内部版本 2) 单声道 - 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//sources.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:找不到文件:/var/folders/w4/xsz8x8vx0_51hjxj474r1_fxhlq7x3/T/tmp9aef74.tmp/libPrint.a collect2: ld 返回 1 个退出状态

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

-更新-

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

【问题讨论】:

    标签: ios binding xamarin.ios xamarin


    【解决方案1】:

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

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

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

    【讨论】:

    • 感谢您的回复。是的,libPrint.a 支持所有架构 - 用于模拟器的 i386 以及 armv7 和 armv7s
    • 绑定的其余构建输出是什么?它是否将 libPrint.a 作为资源嵌入? (这应该)。您的 libPrint.linkwith.cs 文件的内容是什么?你有吗?
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-07
      • 1970-01-01
      • 2014-06-29
      • 1970-01-01
      相关资源
      最近更新 更多