免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 24626902 | 回复: 24626902

gcc的参数-fPIE是什么意思? [复制链接]

论坛徽章:
0
发表于 2006-04-06 12:53 |显示全部楼层
gcc的参数-fPIE是什么意思?

论坛徽章:
0
发表于 2006-04-06 12:58 |显示全部楼层
用于产生与位置无关的代码。创建动态库时,必须加这几个参数进行编译。

[ 本帖最后由 阿旺 于 2006-4-6 13:00 编辑 ]

论坛徽章:
0
发表于 2006-04-06 13:19 |显示全部楼层
楼上的,
-fPIE is not -fPIC

论坛徽章:
0
发表于 2006-04-06 13:30 |显示全部楼层
Pattern not found

论坛徽章:
0
发表于 2012-09-14 16:09 |显示全部楼层
那-Fpic 什么意思?

论坛徽章:
3
15-16赛季CBA联赛之山东
日期:2016-10-30 08:47:3015-16赛季CBA联赛之佛山
日期:2016-12-17 00:06:31CU十四周年纪念徽章
日期:2017-12-03 01:04:02
发表于 2012-09-15 14:14 |显示全部楼层
ok.

-fPIE的意思其实和-fPIC是差不多的. 它们都是产生位置无关的代码.

只不过, -fPIE是为可执行文件产生位置无关代码, -fPIC是为共享库产生位置无关代码.

---------------------分割线-------------------------------------

地址无关代码技术是一种编译期的, 由编译器实施的技术 -- 这句话是口水话, 不过却是理解地址无关技术的关键所在之一. 很多人容易把地址无关技术和链接过程混淆起来(当然, 这些技术确实和链接过程是相关的), 导致对这种技术的理解有偏差.

论坛徽章:
3
15-16赛季CBA联赛之山东
日期:2016-10-30 08:47:3015-16赛季CBA联赛之佛山
日期:2016-12-17 00:06:31CU十四周年纪念徽章
日期:2017-12-03 01:04:02
发表于 2012-09-15 14:16 |显示全部楼层
TMD... 一不小心, 没发现又是一张挖坟贴, 艹.

论坛徽章:
0
发表于 2012-09-15 18:07 |显示全部楼层
回复 7# captivated


    {:3_184:}

这贴有点略久啊。

谁挖的。 锹挺长啊。

论坛徽章:
3
处女座
日期:2015-03-18 14:35:45羊年新春福章
日期:2015-03-18 14:48:23午马
日期:2015-03-18 14:51:09
发表于 2012-09-17 19:49 |显示全部楼层
关于符号重定位,动态填写.got  程序员的自我修养这本书有解释,

论坛徽章:
3
15-16赛季CBA联赛之山东
日期:2016-10-30 08:47:3015-16赛季CBA联赛之佛山
日期:2016-12-17 00:06:31CU十四周年纪念徽章
日期:2017-12-03 01:04:02
发表于 2012-09-17 21:04 |显示全部楼层
本帖最后由 captivated 于 2012-09-17 21:32 编辑

回复 9# mr_sev


    嗯. 回答没错, 不过你还是没有注意到我的解释. 这证明你看得不够仔细(小小得意一下, 哈哈).

    地址无关代码技术是编译期由编译器实施的技术, .got不过是个类似于.data的数据段, 而且它里面的item是在加载期由动态链接器填写的. Lazy Binding先不讨论, 总体上是这样的.
    关键的地方在于, 地址无关代码的实现本身要求访问数据时对于指令的选择 -- 简单的说, 你要mov一个内存数据到寄存器, 不是简单的 movl var_addr, %ebx 这种指令的事情, 而是必须要获得内存数据对于eip亦即pc的相对偏移量, 这个才是PIC(Position Independent Code)的关键啊. 而选择使用(或者把C语言代码编译为)哪个(或者哪一系列)汇编指令, 是编译器的事情. 至于.got的填写已经和编译器没有关系了(前面已经解释过那是运行期行为了), 注意到这一点才能算是对地址无关代码技术有透彻的理解了哦.

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP