Linker 是否有强制加载程序加载固定地址的共享库?

Linker 是否有强制加载程序加载固定地址的共享库?,linker,loader,Linker,Loader,我有一个自己的共享库,它正在做一些低级的事情。它需要知道在编译时加载的起始地址 是否有强制加载程序在固定地址加载共享库的方法 # create linker script $ export BASE_ADDRESS=0x00800000 $ gcc -shared -Wl,--verbose 2>&1 | sed -e '/^======/,/^======/!d' -e '/^======/d;s/0\(.*\)\(+ SIZEOF_HEADERS\)/'$BASE_ADDRE

我有一个自己的共享库,它正在做一些低级的事情。它需要知道在编译时加载的起始地址

是否有强制加载程序在固定地址加载共享库的方法

# create linker script

$ export BASE_ADDRESS=0x00800000
$ gcc -shared -Wl,--verbose 2>&1 | sed -e '/^======/,/^======/!d' -e '/^======/d;s/0\(.*\)\(+ SIZEOF_HEADERS\)/'$BASE_ADDRESS'\1\2/' >foo.lds

# build and link with linker-script

$ gcc -shared foo.c -o foo.o
$ gcc -Wl,-T,foo.lds -shared -fPIC foo.o -o foo.so
$ objdump --syms foo.so 

foo.so:     file format elf32-i386

SYMBOL TABLE:

00800114 l    d  .note.gnu.build-id 00000000              .note.gnu.build-id
00800138 l    d  .gnu.hash  00000000              .gnu.hash
0080016c l    d  .dynsym    00000000              .dynsym
008001fc l    d  .dynstr    00000000              .dynstr
...