[問題] 把共享庫(SO)載入到指定的記憶體地址

看板LinuxDev作者 (gigigigi)時間9年前 (2016/02/25 23:24), 編輯推噓2(209)
留言11則, 3人參與, 最新討論串1/1
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://www.ptt.cc/bbs/LinuxDev/M.1456413893.A.AA0.html

02/26 15:11, , 1F
請細看範例內文. ld.s 寫不全, 就會不正確.
02/26 15:11, 1F

02/26 15:12, , 2F
該內文有說, 默認的ld script非常冗長, 他只是引用開頭一段.
02/26 15:12, 2F

02/26 15:14, , 3F
你的 ld.s 和 ld1.s 只是硬抄不完整的片段, 當然不如預期.
02/26 15:14, 3F

02/26 19:59, , 4F
完整的 ld --verbose > ld.so 在修改我也試過, 可是這
02/26 19:59, 4F

02/26 20:00, , 5F
/usr/bin/ld:ld.s:1: syntax error
02/26 20:00, 5F

02/26 20:02, , 6F
他說的內文不全是最上面例子, 我寫的程式碼應該是他
02/26 20:02, 6F

02/26 20:02, , 7F
ld --verbose > ld.so 擷取出來的部份了...我用這部份能
02/26 20:02, 7F

02/26 20:03, , 8F
編譯過, 可是結果這不對
02/26 20:03, 8F

02/26 21:36, , 9F
所以你指不指定link script載入位置都一樣??
02/26 21:36, 9F

02/27 03:06, , 10F
ld --verbose 的輸出不全是 ld script, 還包含了別的訊息.
02/27 03:06, 10F

02/27 03:09, , 11F
夾在兩個充滿等號的列之間的內容, 才是 ld script.
02/27 03:09, 11F
文章代碼(AID): #1Mpnp5gW (LinuxDev)
文章代碼(AID): #1Mpnp5gW (LinuxDev)