gpt4 book ai didi

c++ - ld 警告 : stack subl instruction is too different from dwarf stack size on OS X

转载 作者:可可西里 更新时间:2023-11-01 18:39:27 25 4
gpt4 key购买 nike

最近我们开始在我们的 OS X 构建中收到此警告。

ld: warning:
could not create compact unwind for __Z10createMenuv: stack subl instruction is too different from dwarf stack size
ld: warning:
could not create compact unwind for __Z10del_modulejb: stack subl instruction is too different from dwarf stack size
could not create compact unwind for __Z14menu_patchbytev: stack subl instruction is too different from dwarf stack size

我可以在 Chromium 错误跟踪器中找到一些关于此的讨论,但建议的“修复”是禁用压缩展开生成。我想了解为什么会出现此警告,以及它是否是我们的代码或工具链中的问题。

我们的工具链来自 Xcode 7.3.1:

Apple LLVM version 7.3.0 (clang-703.0.31)
Target: x86_64-apple-darwin15.6.0

最佳答案

在做一些研究时,我看到的最佳答案是工具链有问题,而不是您的代码。

它正在构建为 32 位而不是 64 位。要解决这个问题,您需要做以下两件事之一:

  1. 使用 64 位版本的 xCode 工具链而不是 32 位版本一个。
  2. 在编译期间提供正确的选项以发出 x86_64代码

这就是为什么有些人建议展开,但我没有看到任何选项来抑制关于紧凑展开的警告。似乎只有一个选项可以启用警告 -warn_compact_unwind

您可以做的是抑制所有将 -Wl,-w 选项传递给编译器的链接器警告。

您可以尝试的另一个临时解决方案是将 -Wl,-no_compact_unwind 传递给 clang。它应该指示链接器不要生成紧凑的展开信息。

最后,尝试针对 64 位架构进行编译。为此,您可以使用 -arch 编译器选项指定架构 - 在您的例子中为 -arch x86_64。.

我看到大多数用户都指向 Xcode 7,有时 Xcode 6 是问题所在。

此外,还有另一种方法可以解决此问题。

In project Build Settings find Build Options and set No in option Enable Bitcode. I hope that it help for you.

关于c++ - ld 警告 : stack subl instruction is too different from dwarf stack size on OS X,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39598302/

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