位置无关代码意味着生成的机器代码不依赖于位于特定地址来工作。并且跳跃是相对的。那么在 Linux 发行版中
声明系统范围是否可以?-fPIC
特别是普通的英特尔 PC 机?
答案1
首先,PIC是编译器问题而不是Linux发行版问题。应允许将 PIC 设置为编译器标志,而不是全局硬编码。并非所有机器架构都支持 PIC。如果您的构建是静态的(非共享),则不需要 PIC,而且效率可能很低。某些体系结构/编译器可能具有不同的等效标志,例如,IBM xl 编译器具有-qpic
标志。当您要求使用英特尔 PC 机器时,如果您碰巧为某些软件包创建构建文件,则可能会限制它们的可移植性。