【问题标题】:PIE disabled. Absolute addressing not allowed in code signed PIEPIE 已禁用。代码签名的 PIE 中不允许使用绝对寻址
【发布时间】:2012-12-11 07:17:53
【问题描述】:

我正在使用 Xcode 4.5,部署目标为 iOS 5.1

当我针对两个显着增加的特定方法编译我的应用程序时,我收到以下警告。

ld:警告:PIE 已禁用。在代码签名的 PIE 中不允许使用绝对寻址(可能是 -mdynamic-no-pic),但在 -[mfile 方法] 中使用。要修复此警告,请不要使用 -mdynamic-no-pic 编译或使用 -Wl,-no_pie 链接

随后应用在启动时抛出异常并出现以下错误:

dyld:vm_protect(0x00001000, 0x0078C000, false, 0x07) 失败,/var/mobile/Applications/8E764612-87ED-4A99-9C59-E56C934DA997/appname.app/appname 中的段 __TEXT 的结果=2

dyld dyld_fatal_error:

0x2feb20c4:陷阱

0x2feb20c8: 无

当我注释掉有问题的方法时,应用程序运行良好。

有什么建议吗?

【问题讨论】:

    标签: dyld addressing pie-chart


    【解决方案1】:

    这是来自 Unity 论坛的回复:

    在 xcode 4.6 构建设置中,将“不要创建与位置无关的可执行文件”从“否”更改为“是”,就是这样。

    致谢amit-chai

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多