gcc/g++中的pic与pie

来源:互联网 发布:ifconfig 设置mac 编辑:程序博客网 时间:2024/06/14 15:44

转载:

http://blog.csdn.net/u012490475/article/details/51861737


gcc/g++中的pic与pie

今天想在应用程序内部执行迅雷下载的可执行程序,无奈报出以下错误。

error: only position independent executables (PIE) are supported.
  • 1
  • 1

以下为问题的原因:

  • PIE这个安全机制从4.1引入,但是Android L之前的系统版本并不会去检验可执行文件是否基于PIE编译出的。因此不会报错。但是Android L已经开启验证,如果调用的可执行文件不是基于PIE方式编译的,则无法运行。

什么是PIE?

  • PIE——Position-Independent-Executable 
    用来创建介于共享库和通常可执行代码之间的代码–能像共享库一样可 
    重分配地址的程序 
    有 -fpie, -fPIE, -pie三个参数 
    -fpie与-fPIE 效果一样,用于编译 
    -pie 用于链接 
    但要生成PIE程序,必须两者配合使用,即使用-fpie -pie或-fPIE -pie

解决方案:

在Android.mk中添加如下代码:

LOCAL_CFLAGS += -pie -fPIELOCAL_LDFLAGS += -pie -fPIE
  • 1
  • 2
  • 1
  • 2

参考博客:

http://blog.liudonghua.com/?p=367


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 棕垫一直有味道怎么办 棕子床垫味道大怎么办 羊绒大衣洗坏了怎么办 无痕内裤开胶了怎么办 衬衫洗了会缩水怎么办 脾虚引起的眼袋怎么办 沙漠玫瑰根烂了怎么办 多肉种子不发芽怎么办 多肉植物掉叶子怎么办 白色衣服染了蓝色怎么办 白色的衣服染色了怎么办 白毛衣染上金纺怎么办 白色的衣服变黄怎么办 白衣服84漂黄了怎么办 真丝的衣服皱了怎么办 衣服领子洗大了怎么办 真丝围巾洗皱了怎么办 真丝裙子洗花了怎么办 衣服晒得掉色了怎么办 衣服上出现霉点怎么办 校服后面的霉点怎么办 被子潮了有味道怎么办 涨奶堵塞有硬块怎么办 军训裤子腰大了怎么办 猫总是在床上尿怎么办 被子盖厚了上火怎么办 猫在被子上撒尿怎么办 脸上被辣椒辣了怎么办 压缩袋衣服皱了怎么办 新买的枕头太高怎么办 刚买的枕头太高怎么办 喝了过期的中药怎么办 喝了坏了的中药怎么办 德运奶粉过期了怎么办 手机膜里的气泡怎么办 贴膜边缘有气泡怎么办 父母被传销洗脑怎么办 分手了还放不下怎么办 说了分手后悔了怎么办 被套放久了发黄怎么办 结婚红床单掉毛怎么办