日期:2014-05-16  浏览次数:20844 次

如何改掉elf文件中动态库的路径
我的意思是:
  拿着比如vi的源码,编译后,ldd vi会列出


[root@localhost bin]# ldd vi
  linux-gate.so.1 => (0x0021e000)
  libm.so.6 => /lib/libm.so.6 (0x00d04000)
  libselinux.so.1 => /lib/libselinux.so.1 (0x00d8e000)
  libncurses.so.5 => /lib/libncurses.so.5 (0x049b1000)
  libacl.so.1 => /lib/libacl.so.1 (0x05525000)
  libc.so.6 => /lib/libc.so.6 (0x00b89000)
  libtinfo.so.5 => /lib/libtinfo.so.5 (0x04996000)
  /lib/ld-linux.so.2 (0x00b65000)
  libdl.so.2 => /lib/libdl.so.2 (0x00cfd000)
  libattr.so.1 => /lib/libattr.so.1 (0x0044b000) ---如前面的/lib/我如何把这个路径改成我的路径


前提是linux的应用,用autoconf automake建立的configure这种东西进行配置编译,如何改成我上面希望得到的东西?


------解决方案--------------------
利用LD_LIBRARY_PATH设置.so搜索路径, 或者设置ld.so.conf, 将你自己的路径加入到搜索路径

ldd显示出的是搜索到的动态库, 并不是在vi elf文件中有这样的路径信息.