ios - LDFLAGS : -Wl, -segalign,4000 是什么意思

标签 ios llvm theos

所以我偶然发现了一个cydia更新笔记:

0.9.6010 fixes the 32-bit armv7 slice, which was keeping extensions from loading into Cydia. (Note that, additionally, all 32-bit binaries, in particular extensions, must be recompiled using -WI,-segalign,4000 for iOS 9 due to a change made by Apple. Extensions that have not been recompiled might “get lucky” and work, but they will usually either fail or even crash.)

这里想问一下-WI-segalign4000这几个标志分别是什么意思,尤其是-WI还是- ?如果仅用于 arm64 设备,我们还需要它吗?

最佳答案

这是分成几个部分的旗帜:

  • -Wl 来自 clang docs ,这是一个命令行标志,允许您直接将参数传递给链接器(clang 是调用链接器的驱动程序,-Wl 表示以下逗号分隔的参数转发链接器而不是被编译器使用)
  • segalign 来自 Mach linker docs , 这指定了段对齐方式(段如二进制文件段,参见Wikipedia)。在这种情况下,每个段都必须对齐到 16384 字节(或者,十六进制的 0x4000)。
  • 4000 是对齐值(它是 -segalign 标志的一部分。

Do we still need it if only for arm64 devices?

您指的是 Armv7 特定的修复/注释。除非注释中也提到了 arm64,否则我认为可以安全地假设 arm64 不需要该标志。不过这只是一个猜测。

关于ios - LDFLAGS : -Wl, -segalign,4000 是什么意思,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57588524/

相关文章:

ios - Theos 无法在我的 iPad 3 上运行

ios - 我怎样才能让我的 UISwitch 调用方法(我正在使用 theos)

ios - xamarin iOS 中的后台线程在 3 分钟后自动结束

ios - Safari IOS 中的 HTML5 视频尺寸

LLVM 相当于命令行上的 gcc -D 宏定义

makefile - 如何在 Theos makefile 中包含资源文件?

ios - MKAnnotationView 问题自初始化器(将 swift 2.0 转换为 swift 2.3)

ios - 单击时将 TableView 单元格编号传递到另一个 View ,一开始始终为 null

c - 运行时检查 LeakSanitizer (detect_leaks=1)

c++ - LLVM 3.4 无法在 VS 2012 中选择平台工具集