PIE禁用。代码签名PIE中不允许绝对寻址

时间:2012-12-25 07:26:24

标签: dyld addressing pie-chart

我正在使用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)失败,结果= 2,用于/var/mobile/Applications/8E764612-87ED-4A99-9C59-E56C934DA997/appname.app/appname

中的段__TEXT      

dyld dyld_fatal_error:

     

0x2feb20c4:陷阱

     

0x2feb20c8:nop

当我评论相关方法时,该应用运行正常。

有什么建议吗?

1 个答案:

答案 0 :(得分:6)

以下是Unity论坛的回复:

  

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

积分转到 amit-chai