http://nixos.org/patchelf.html

wget http://nixos.org/releases/patchelf/patchelf-0.8/patchelf-0.8.tar.bz2

tar -zxf patchelf-0.8.tar.bz2

cd patchelf-0.8

./configure --prefix=/usr

make && make install

修改前

readelf -d cc1

Dynamic section at offset 0xd49728 contains 28 entries:

Tag Type Name/Value

0x0000000000000001 (NEEDED) Shared library: [libcloog-isl.so.4]

0x0000000000000001 (NEEDED) Shared library: [libdl.so.2]

0x0000000000000001 (NEEDED) Shared library: [libm.so.6]

0x0000000000000001 (NEEDED) Shared library: [libc.so.6]

0x0000000000000001 (NEEDED) Shared library: [ld-linux-x86-64.so.2]

0x000000000000000c (INIT) 0x4f8e18

0x000000000000000d (FINI) 0xd36e1c

0x0000000000000019 (INIT_ARRAY) 0x1344ab8

0x000000000000001b (INIT_ARRAYSZ) 224 (bytes)

0x000000000000001a (FINI_ARRAY) 0x1344b98

0x000000000000001c (FINI_ARRAYSZ) 8 (bytes)

0x000000006ffffef5 (GNU_HASH) 0x400298

0x0000000000000005 (STRTAB) 0x46ca58

0x0000000000000006 (SYMTAB) 0x419a30

0x000000000000000a (STRSZ) 529715 (bytes)

0x000000000000000b (SYMENT) 24 (bytes)

0x0000000000000015 (DEBUG) 0x0

0x0000000000000003 (PLTGOT) 0x134a1e8

0x0000000000000002 (PLTRELSZ) 9312 (bytes)

0x0000000000000014 (PLTREL) RELA

0x0000000000000017 (JMPREL) 0x4f69b8

0x0000000000000007 (RELA) 0x4f4ed0

0x0000000000000008 (RELASZ) 6888 (bytes)

0x0000000000000009 (RELAENT) 24 (bytes)

0x000000006ffffffe (VERNEED) 0x4f4e40

0x000000006fffffff (VERNEEDNUM) 3

0x000000006ffffff0 (VERSYM) 0x4edf8c

0x0000000000000000 (NULL) 0x0

# ldd cc1

linux-vdso.so.1 =>  (0x00007fff20dff000)

libcloog-isl.so.4 => not found

libdl.so.2 => /lib64/libdl.so.2 (0x000000320d400000)

libm.so.6 => /lib64/libm.so.6 (0x000000320d000000)

libc.so.6 => /lib64/libc.so.6 (0x000000320c800000)

/lib64/ld-linux-x86-64.so.2 (0x000000320c400000)

利用patchelf修改路径

patchelf --set-rpath /opt/gcc-4.8.5/builddir/cloog-install/lib/ cc1

查看最新信息

# readelf -d cc1

Dynamic section at offset 0x270 contains 29 entries:

Tag Type Name/Value

0x000000000000001d (RUNPATH) Library runpath: [/opt/gcc-4.8.5/builddir/cloog-install/lib/]

0x0000000000000001 (NEEDED) Shared library: [libcloog-isl.so.4]

0x0000000000000001 (NEEDED) Shared library: [libdl.so.2]

0x0000000000000001 (NEEDED) Shared library: [libm.so.6]

0x0000000000000001 (NEEDED) Shared library: [libc.so.6]

0x0000000000000001 (NEEDED) Shared library: [ld-linux-x86-64.so.2]

0x000000000000000c (INIT) 0x4f8e18

0x000000000000000d (FINI) 0xd36e1c

0x0000000000000019 (INIT_ARRAY) 0x1344ab8

0x000000000000001b (INIT_ARRAYSZ) 224 (bytes)

0x000000000000001a (FINI_ARRAY) 0x1344b98

0x000000000000001c (FINI_ARRAYSZ) 8 (bytes)

0x000000006ffffef5 (GNU_HASH) 0x4d3a18

0x0000000000000005 (STRTAB) 0x3ff490

0x0000000000000006 (SYMTAB) 0x4809f0

0x000000000000000a (STRSZ) 529758 (bytes)

0x000000000000000b (SYMENT) 24 (bytes)

0x0000000000000015 (DEBUG) 0x0

0x0000000000000003 (PLTGOT) 0x134a1e8

0x0000000000000002 (PLTRELSZ) 9312 (bytes)

0x0000000000000014 (PLTREL) RELA

0x0000000000000017 (JMPREL) 0x4f69b8

0x0000000000000007 (RELA) 0x4f4ed0

0x0000000000000008 (RELASZ) 6888 (bytes)

0x0000000000000009 (RELAENT) 24 (bytes)

0x000000006ffffffe (VERNEED) 0x4f4e40

0x000000006fffffff (VERNEEDNUM) 3

0x000000006ffffff0 (VERSYM) 0x4edf8c

0x0000000000000000 (NULL) 0x0

# ldd cc1

linux-vdso.so.1 => (0x00007fff8e3ff000)

libcloog-isl.so.4 => /opt/gcc-4.8.5/builddir/cloog-install/lib/libcloog-isl.so.4 (0x00007fdaac630000)

libdl.so.2 => /lib64/libdl.so.2 (0x000000320d400000)

libm.so.6 => /lib64/libm.so.6 (0x000000320d000000)

libc.so.6 => /lib64/libc.so.6 (0x000000320c800000)

/lib64/ld-linux-x86-64.so.2 (0x000000320c400000)

libgmp.so.3 => /usr/lib64/libgmp.so.3 (0x000000320e000000)

注:

才发现RHEL 已经自带了chrpath工具,直接使用即可. ( yum install chrpath)

不过chrpath 有个缺陷,如果当前系统为x86_64,则修改i386 elf会报错,patchelf则无此问题!

elf 取路径_PatchELF 修改linux下elf文件library搜索路径相关推荐

  1. linux下grep文件内容搜索工具及基本正则表达式详解

    linux下grep文件内容搜索工具及基本正则表达式详解 grep命令: 根据模式(文本字符和基本正则表达式的元字符组合而成之匹配条件)搜索文本, 并将符合模式的文本行显示出来. 格式:grep [选 ...

  2. 关于如何将windows修改user下用户名文件夹及路径为英文

    文章目录 0. 前言 1. 注意事项 2. 具体设置过程 1. 检查自己用户名所在的路径,并找到自己需要修改的用户名,路径在 C:\Users 里面 2. **打开开始菜单,直接键盘输入计算机管理并打 ...

  3. 修改Linux下只读文件的权限

    使用chmod命令,为文件提供其他的权限. 如果要给只读文件加上写权限,到文件所在目录下运行终端,输入 sudo chmod a+w filename 下面是chmod的详细介绍,不予赘述. 指令名称 ...

  4. linux rpm mysql 路径_linux基础-linux 下 安装 rpm 格式 的 mysql

    在Linux操作系统下,安装MYSQL有两种方式: 一种tar安装方式, 另外一种是rpm安装方式. 这两种安装方式有什么区别呢?尽管我们在Linux下常用tar来压缩/解压缩文件,但MYSQL的ta ...

  5. linux下查看文件编码及修改编码

    linux下查看文件编码及修改编码 查看文件编码 在Linux中查看文件编码可以通过以下几种方式: 1.在Vim中可以直接查看文件编码 :set fileencoding 即可显示文件编码格式. 如果 ...

  6. 三级数据库还是linux好,08年计算机三级数据库辅导:如何修改Linux下MySQL5.0的默认连接数...

    08年计算机三级数据库辅导:如何修改Linux下MySQL5.0的默认连接数 分类:计算机等级| 更新时间:2008-08-25| 来源:教育联展网 这段时间服务器崩溃2次,一直没有找到原因,今天看到 ...

  7. linux下查找java的安装路径和java和tomcat的环境配置

    Linux下找到真正的JDK路径,从而解决默认编译安装Java后不知道jdk路径,以至于无法启动Tomcat的问题. 输入: [root@cheng java]# ls -lrt /usr/bin/j ...

  8. 自动修改linux下/etc/sysconfig/network-scripts/ifcfg-ethX网卡文件的脚本

    此脚本修改linux下/etc/sysconfig/network-scripts/ifcfg-ethX网卡文件中的网卡一.网卡二的IP地址(IPADDR).子网掩码(NETMASK)信息 #!/bi ...

  9. linux系统电脑的权限设置,Linux下的文件权限设置修改详解linux操作系统 -电脑资料...

    在linux中更改所属用户组是使用chgrp,更改文件拥有者, chown,更改9个属性, chmod这三种常用的问题,在linxu中这三个命令就是对文件目录权限的控制命令了,下面我来介绍它们的用法与 ...

最新文章

  1. Gin源码解析和例子——路由
  2. DataSourceUtils(使用C3P0连接池的工具类)
  3. android炫酷动画代码,Android高级UI特效仿直播点赞动画效果
  4. Jquery中$(document).ready(function(){ })函数的使用详解
  5. 解决后端返回数据中的大数字问题(使用第三方包json-bigint )
  6. 发布react项目到linux服务器,nginx上部署react项目的实例方法
  7. adb指令禁用软件_技巧 | adb助你华为手机免ROOT卸载预装软件
  8. android实现欢迎启动界面
  9. 设计类超实用的导航网站,一网包含1000+个行业内热门资讯灵感源!
  10. python解常微分方程龙格库_求解常微分方程组初值问题的龙格库塔法分析及其C代码...
  11. android 显示系统时间,Android 实时获取当前时间并显示
  12. 左对齐杨辉三角python_什么是左的错误?
  13. 环丙沙星大鼠血清白蛋白纳米粒|甲硝唑小麦麦清白蛋白纳米粒|雷替曲塞乳清白蛋白纳米粒(科研级)
  14. CV控制输出的图片大小
  15. 甘超波:NLP抽离与结合
  16. 在 sysservers 中找不到服务器,在 sys.servers 中找不到服务器的解决办法,自己解决的...
  17. nginx过滤HttpHeader的 中划线
  18. HarmonyOS/OpenHarmony 双击返回与退出App
  19. 从零开始画自己的DAG作业依赖图(三)--节点连线简单版
  20. 创建RAID5磁盘阵列和RAID10磁盘阵列

热门文章

  1. leanote 支持php,Leanote source leanote源码导读
  2. mysql内测试连通性命令_怎么使用ping命令进行连通性测试
  3. linux查看是哪个端口,linux 查看哪个端口使用情况
  4. android游戏大地图如何加载失败,求助:android studio第一次加载百度地图api失败
  5. oracle安装前准备,Oracle 安装前准备
  6. C语言丨小 学 数 学(二):高精度乘法
  7. linux开启多少到多少端口命令,Linux端口命令
  8. php html中的判断,php包含_php 判断字符串是否包含html标签
  9. 系统地址和服务器地址不一致,在打开远程通服务配置程序时检测系统配置时提示配置失败,映射的ip地址与服务器不一致。...
  10. Java 时间处理 Instant