关于在XCode中“其他C标志”的LLVM编译标志“-mlong-calls”。

时间:2012-09-09 09:41:57

标签: xcode llvm

这个标志是什么意思?它将如何使用?为什么需要启用此标志?

1 个答案:

答案 0 :(得分:2)

根据ARM options page for GCC;

  

告诉编译器首先加载函数来执行函数调用   将函数的地址放入寄存器然后执行   子程序调用此寄存器。如果目标需要此开关   功能位于64兆字节的寻址范围之外   基于偏移量的子程序调用指令版本。

基本上这意味着如果你的二进制文件很小,你可能永远不会遇到运行默认-mno-long-calls的问题而不必担心该选项。

如果链接器为您提供错误Relocation truncated to fit: R_ARM_PC24,则您已达到默认值的限制,需要使用-mlong-calls 编译并链接您的二进制文件。