gpt4 book ai didi

iOS 14 链接模块标志 'Dwarf Version' : IDs have conflicting behaviors

转载 作者:行者123 更新时间:2023-12-04 13:29:51 28 4
gpt4 key购买 nike

我正在尝试使我的应用程序与 iOS 14 (Xcode 12.3) 兼容。构建在链接阶段失败,并出现以下错误:

ld: linking module flags 'Dwarf Version': IDs have conflicting behaviors in 'xxx.o' and 'ld-temp.o'
clang: error: linker command failed with exit code 1 (use -v to see invocation)
我在下面搜索了解决方案。解决方案是关闭 Link-Time Optimization 或将 Link-Time Optimization 从 Monolithic 更改为 Incremental。
https://stackoverflow.com/questions/39125409/xcode-8-beta-6-conflicting-values-for-architecture
https://github.com/facebook/facebook-ios-sdk/issues/1560
我尝试将链接时间优化从整体更改为增量,它解决了我的问题。所以我的问题是:
  • 有人知道如何调试这种链接冲突问题的根本原因吗?
  • 为什么在使用 iOS 14 而不是在以前的版本中构建时会发生这种链接冲突问题?
  • 改变 LTO 是唯一的解决方案吗?
  • 最佳答案

    我有同样的问题。就我而言,xxx.o 是一个编译为位码的库。我分析了库中的 .o 文件,它们既没有 coff 也没有男子气概的文件。相反,它们被包装成 bc 文件。见 https://llvm.org/docs/BitCodeFormat.html
    您可以使用文件来分析它。
    问题是位码文件的调试信息存储为 Dwarf-2,而 .o 文件确实有 Dwarf-4。添加-gdwarf-2选项没有用,因为llvm首先编译成bitcode,也就是dwarf2。
    修复方法是使用 llc 将包装的 bc 文件的 .o 文件转换为真正的 .o 文件。如果您有一个库,它会变得有点复杂,您需要先从库中提取包装好的 .o 文件,将它们转换为真正的 .o 文件并创建一个新库。

    关于iOS 14 链接模块标志 'Dwarf Version' : IDs have conflicting behaviors,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65733396/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com