作者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/m.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