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

时间:2019-08-21 09:28:08

标签: ios llvm theos

所以我遇到了Cydia更新说明:

  

0.9.6010修复了32位armv7片,该片防止扩展加载到Cydia中。 (请注意,由于苹果所做的更改,所有32位二进制文​​件(尤其是扩展名)必须使用-WI,-segalign,4000(适用于iOS 9)重新编译,因为Apple所做的更改。未重新编译的扩展名可能会“很幸运”和工作,但是它们通常会失败甚至崩溃。)

我想问一下每个标志-WI-segalign4000的含义,特别是-WI或-Wl?如果仅用于arm64设备,我们仍然需要它吗?

1 个答案:

答案 0 :(得分:0)

这是一分为二的国旗:

  • -Wl来自clang docs,这是一个命令行标志,可让您直接将参数传递给链接器(clang是调用链接器-Wl的驱动程序意味着以下以逗号分隔的参数将转发给链接器,而不是由编译器使用。
  • segalignMach linker docs开始,指定段对齐方式(如 binary file segment 中的段,请参见Wikipedia)。在这种情况下,每个段都必须对齐为16384个字节(或0x4000以十六进制表示)。
  • 4000是对齐方式的值(它是-segalign标志的一部分。
  

仅对于arm64设备,我们仍然需要它吗?

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