我正在努力使我的应用程序与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)我在下面找到了解决方案。解决方案是关闭链路时间优化或将链路时间优化从单块更改为增量。
https://stackoverflow.com/questions/39125409/xcode-8-beta-6-conflicting-values-for-architecture
https://github.com/facebook/facebook-ios-sdk/issues/1560我试图改变链接时间优化从单一的增量,它解决了我的问题。所以我的问题是:
。
发布于 2021-05-19 08:07:04
我也有同样的问题。在我的例子中,xxx.o是一个被编译成bitcode的库。我分析了库中的.o文件,它们不是coff文件,也不是男子汉文件。相反,它们是包装bc文件。请参阅https://llvm.org/docs/BitCodeFormat.html
你可以用文件来分析它。问题是,bitcode文件的调试信息存储为Dwarf-2,而.o文件确实具有Dwarf-4。添加-g侏罗-2选项不起作用,因为llvm首先编译为bitcode,即dwarf2。
修复方法是使用llc将包装bc文件的.o文件转换为真正的.o文件。如果您有一个库--它变得更复杂了,您需要首先从库中删除包装好的.o文件,将它们转换为真正的.o文件,并创建一个新的库。
https://stackoverflow.com/questions/65733396
复制相似问题