【问题标题】:Getting native linking error while building the iOS app with static library使用静态库构建 iOS 应用程序时出现本机链接错误
【发布时间】:2016-02-09 06:04:41
【问题描述】:

我正在尝试使用绑定项目将第三方静态库与 iOS 应用程序绑定。添加静态库绑定项目后构建成功。但是我的 iOS 应用程序显示了一些本机链接错误,如附图所示。有人可以帮我解决这个问题吗?

【问题讨论】:

    标签: xamarin xamarin.ios


    【解决方案1】:

    可以通过将此添加到绑定项目中静态库的 LinkWith 属性来解决 EA* 错误:

    [assembly: LinkWith (..., Frameworks = "ExternalAccessory")]
    

    可以通过将SystemConfiguration 添加到 LinkWith 属性中的框架列表来解决 SCNetworkReachabilityCreateWithAddress 错误(如上)。

    BZ2_bzBuffToBuffCompress 错误可能是您的静态库引用但不包含的函数。您可能可以通过将 -dead_strip 添加到链接器标志来解决它:

    [assembly: LinkWith (..., LinkerFlags = "-dead_strip")]
    

    这将告诉本机链接器删除未使用的代码,这可能会删除调用 BZ2_bzBuffToBuffCompress 的代码,从而解决它。它也可能会删除太多代码,因此您必须尝试看看会发生什么。

    【讨论】:

    • 嗨罗尔夫,感谢您的评论。我根据您的 cmets 进行了更改。但仍然面临一些其他原生墨迹错误i.stack.imgur.com/DrUk0.png
    • 尝试在 LinkWith 属性中设置IsCxx = true
    • 太棒了!!它将我的构建错误计数从 103 减少到 22。你能检查一下这个i.stack.imgur.com/nT8ER.png 截图。请帮我解决这个错误。
    • 您是否将SystemConfiguration 添加到框架列表中?这就是这些函数所在的位置:developer.apple.com/library/ios/documentation/…
    • 感谢您的评论。我已经在我的框架中添加了系统配置。但仍然面临“MT5210”、“MT5201”和“MT5202”等原生链接错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-11
    相关资源
    最近更新 更多