作者gigigigi (gigigigi)
看板LinuxDev
标题[问题] 把共享库(SO)载入到指定的记忆体地址
时间Thu Feb 25 23:24:50 2016
http://blog.csdn.net/absurd/article/details/860140
我练习上面网站中范例
文中提到ldd 编译出来执行档可以看到在自己写的ld script 设定的载入地址
libtest.so => ./libtest.so (0x00c00000)
libtest1.so => ./libtest1.so (0x00d00000)
我出来结果是
libtest.so (0xf6b6d000)
libtest1.so (0xf5e6b000)
因为他网站环境看起来是32bit , 所以makefile 我加上-m32
下面是我程式码
http://doora.qiniudn.com/gn5MA.bz2
请问一下为什麽我显示出来不是我想载入的记忆体位址?
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 175.180.193.105
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/LinuxDev/M.1456413893.A.AA0.html
1F:推 yvb: 请细看范例内文. ld.s 写不全, 就会不正确. 02/26 15:11
2F:→ yvb: 该内文有说, 默认的ld script非常冗长, 他只是引用开头一段. 02/26 15:12
3F:→ yvb: 你的 ld.s 和 ld1.s 只是硬抄不完整的片段, 当然不如预期. 02/26 15:14
4F:→ gigigigi: 完整的 ld --verbose > ld.so 在修改我也试过, 可是这 02/26 19:59
5F:→ gigigigi: /usr/bin/ld:ld.s:1: syntax error 02/26 20:00
6F:→ gigigigi: 他说的内文不全是最上面例子, 我写的程式码应该是他 02/26 20:02
7F:→ gigigigi: ld --verbose > ld.so 撷取出来的部份了...我用这部份能 02/26 20:02
8F:→ gigigigi: 编译过, 可是结果这不对 02/26 20:03
9F:→ final01: 所以你指不指定link script载入位置都一样?? 02/26 21:36
10F:推 yvb: ld --verbose 的输出不全是 ld script, 还包含了别的讯息. 02/27 03:06
11F:→ yvb: 夹在两个充满等号的列之间的内容, 才是 ld script. 02/27 03:09