linux 执行程序时,提示not found问题分析
sh: ./test: not found
通常可以通过readelf查看该进程文件所以依赖的运行环境,检查相关路径是否存在对应的文件.
比如如下:
1. 检查/lib目录,发现ld-X.XX.so为ld-2.26.so, 但没有ld-linux.so.3,那么可以建立一个软连接ln -s ld-2.26.so ld-linux.so.3
2. 将程序需要用到的动态库存在在指定目录SPEC_PATH,然后通过export LD_LIBRARY_PATH=$(LD_LIBRARY_PATH):SPEC_PATH
注意
1. interpreter程序动态库解析器/加载器是绝对路径,设置LD_LIBRARY_PATH指向对应目录对于部分系统则无效
2. Shared library可以是相对路径,设置LD_LIBRARY_PATH即可
$ readelf -l test
Elf file type is DYN (Shared object file)
Entry point 0x786a4
There are 10 program headers, starting at offset 52
Program Headers:
Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
PHDR 0x000034 0x00000034 0x00000034 0x00140 0x00140 R 0x4
INTERP 0x000174 0x00000174 0x00000174 0x00013 0x00013 R 0x1
[Requesting program interpreter: /lib/ld-linux.so.3]
LOAD 0x000000 0x00000000 0x00000000 0x491b6c 0x491b6c R E 0x1000
LOAD 0x491d20 0x00492d20 0x00492d20 0x06880 0x186c0 RW 0x1000
DYNAMIC 0x495ec0 0x00496ec0 0x00496ec0 0x00140 0x00140 RW 0x4
NOTE 0x000188 0x00000188 0x00000188 0x00044 0x00044 R 0x4
GNU_EH_FRAME 0x491b64 0x00491b64 0x00491b64 0x00008 0x00008 R 0x4
GNU_STACK 0x000000 0x00000000 0x00000000 0x00000 0x00000 RWE 0x10
EXIDX 0x48da50 0x0048da50 0x0048da50 0x04110 0x04110 R 0x4
GNU_RELRO 0x491d20 0x00492d20 0x00492d20 0x042e0 0x042e0 RW 0x8
Section to Segment mapping:
Segment Sections...
00
01 .interp
02 .interp .note.ABI-tag .note.gnu.build-id .dynsym .dynstr .gnu.hash .gnu.version .gnu.version_r .rel.dyn .rel.plt .init .plt .text .fini .rodata .ARM.extab .ARM.exidx .eh_frame .eh_frame_hdr
03 .data.rel.ro.local .jcr .fini_array .init_array .data.rel.ro .dynamic .data .tm_clone_table .got .bss
04 .dynamic
05 .note.ABI-tag .note.gnu.build-id
06 .eh_frame_hdr
07
08 .ARM.exidx
09 .data.rel.ro.local .jcr .fini_array .init_array .data.rel.ro .dynamic
$ readelf -d test
Dynamic section at offset 0x495ec0 contains 34 entries:
Tag Type Name/Value
0x00000003 (PLTGOT) 0x4990e8
0x00000002 (PLTRELSZ) 2392 (bytes)
0x00000017 (JMPREL) 0x6a16c
0x00000014 (PLTREL) REL
0x00000011 (REL) 0x63e2c
0x00000012 (RELSZ) 25408 (bytes)
0x00000013 (RELENT) 8 (bytes)
0x6ffffffa (RELCOUNT) 3154
0x00000015 (DEBUG) 0x0
0x00000006 (SYMTAB) 0x1cc
0x0000000b (SYMENT) 16 (bytes)
0x00000005 (STRTAB) 0x17b5c
0x0000000a (STRSZ) 256100 (bytes)
0x6ffffef5 (GNU_HASH) 0x563c0
0x00000001 (NEEDED) Shared library: [libpthread.so.0]
0x00000001 (NEEDED) Shared library: [libglib-2.0.so.0]
0x00000001 (NEEDED) Shared library: [librt.so.1]
0x00000001 (NEEDED) Shared library: [libstdc++.so.6]
0x00000001 (NEEDED) Shared library: [libm.so.6]
0x00000001 (NEEDED) Shared library: [libgcc_s.so.1]
0x00000001 (NEEDED) Shared library: [libc.so.6]
0x00000001 (NEEDED) Shared library: [ld-linux-armhf.so.3]
0x0000000c (INIT) 0x6aac4
0x0000000d (FINI) 0x3baff8
0x0000001a (FINI_ARRAY) 0x49605c
0x0000001c (FINI_ARRAYSZ) 4 (bytes)
0x00000019 (INIT_ARRAY) 0x496060
0x0000001b (INIT_ARRAYSZ) 264 (bytes)
0x6ffffff0 (VERSYM) 0x60d68
0x6ffffffe (VERNEED) 0x63c9c
0x6fffffff (VERNEEDNUM) 7
0x00000000 (NULL) 0x0
linux 执行程序时,提示not found问题分析的更多相关文章
- linux安装时提示发生不正常错误问题
跳过md5系统较检(每个系统版本都有一个md5编码唯一) 在安装CentOS时 提示 找不到磁盘,是否安装程序,选择安装程序进行"下一步" 提示: 发生不规则,不正常错误 原因:没 ...
- 配置Linux Kernel时make menuconfig执行流程分析
在编译内核前,一般是根据已有的配置文件(一般在内核根目录下的arch/arm/configs/文件夹下,把该目录下的xxx_defconfig文件拷贝到内核根目录下,并重命名为.config)来 ...
- linux下载时提示请尝试移除磁盘中不需要的文件并重试,或者保存到其他位置
因为我是用虚拟机装的linux,所以当时就分配了20G硬盘,下载了几个应用后再下载就提示我这个了.一开始我还以为是因为下载链接的问题,后来才知道原来是因为/tmp的满了. 然后我输入以下连个命令就能正 ...
- LInux javac时, 提示command not found
这个是我之前看了很多的论坛发现的问题,我想了很久也没有发现问题,明明路径都是对的,配置文件也没有错误,为什么最后却只有执行java好使,但是执行javac不好使 因为java分两个版本一个是jre,一 ...
- Linux Shell 脚本提示:sleep: 无效的时间间隔"1s\r"
问题:编写好的 Shell 脚本在 Linux 执行时提示报错:sleep: 无效的时间间隔"1s\r" : 原因:若再三确认脚本没有写错,可能是原脚本文件在 Win 下创建编写好 ...
- Linux下通过rm -f删除大量文件时提示"-bash: /bin/rm: Argument list too long"的解决方法
Linux下通过rm -f删除/var/spool/postfix/maildrop/中大量的小文件时提示: "-bash: /bin/rm: Argument list too long& ...
- Linux启动vi编辑器时提示E325: ATTENTION解决方案
Linux启动vi编辑器时提示E325: ATTENTION解决方案 Vi编辑器是Linux的文本编辑器,在Linux系统的运用非常广泛,不少朋友在打开Vi编辑器的时候提示E325: ATTENTIO ...
- Linux:redhat6.5使用yum时提示需要注册问题解决方案
Linux:redhat6.5使用yum时提示需要注册问题解决方案 一.问题 新安装了redhat6.5.安装后,登录系统,使用yum时候.提示: This system is not registe ...
- ubuntu设置root密码及 Xftp连接linux(ubuntu)时提示ssh服务器拒绝了密码,请再试一次
原文:ubuntu设置root密码及 Xftp连接linux(ubuntu)时提示ssh服务器拒绝了密码,请再试一次 alt+f2,在弹出的运行窗口中输入:gnome-terminal sudo pa ...
随机推荐
- python之高阶函数map/reduce
L = [] for n in [1, 2, 3, 4, 5, 6, 7, 8, 9]: L.append(f(n)) print(L) Python内建了map()和reduce()函数. 我们先看 ...
- 服务器LIUNX之如何解决矿机问题
点进来的基本都是遇到liunx变矿机的小伙伴吧(cpu运载300%) 卡的连终端都很难打开 开下来之后提示 大意是, 到xxx网站给钱了事, 不过基本这个网站基本也上不去, 要么是暴力破解, 要么是通 ...
- 关于Java中用Double型运算时精度丢失的问题
注:转自 https://blog.csdn.net/bleach_kids/article/details/49129943 在使用Java,double 进行运算时,经常出现精度丢失的问题,总是在 ...
- em和px区别
附:(http://www.cnblogs.com/leejersey/p/3662612.html) em单位说明 1em指的是一个字体的大小,它会继承父级元素的字体大小,因此并不是一个固定的值.任 ...
- Stage4--Python面向对象
说在前面: Stage1-Stage4简单介绍一下Python语法,Stage5开始用python实现一些实际应用,语法的东西到处可以查看到,学习一门程序语言的最终目的是应用,而不是学习语法,语法本事 ...
- XUtils3 的 环境搭建与简单使用
XUtils3 的 环境搭建 环境搭建三部曲 ----------------------- 说明 : author 修雨轩陈 使用andorid Studio 已经创建了一个项目 并且自己需要使用 ...
- matlab练习程序(Bresenham画线)
Bresenham画线算图形学中最基础的知识了,可惜我并没有选修过图形学,所有还是有必要熟悉一下. 上一篇用到的画线函数应该算是数值微分法,也是我最常用的一种方法,不过这种方法似乎并不是很好. 这里的 ...
- pdf2swf 转换时报错。This file is too complex to render- SWF only supports 65536 shapes at once
在使用swftools转换pdf 到swf的时候报错,有如下说明:if the pdf contains too many images / shapes, pdf2swf will fail wit ...
- 启动eclipse出现“Error opening registry key 'software\Javasoft\Java Runtime Environment'”
启动eclipse出现“Error opening registry key 'software\Javasoft\Java Runtime Environment'”,“java was start ...
- NO.004-2018.02.09《离思五首·其四》唐代:元稹
离思五首·其四_古诗文网 离思五首·其四 唐代:元稹 曾经沧海难为水,除却巫山不是云.曾经到临过沧海,别处的水就不足为顾:除了巫山,别处的云便不称其为云.曾经:曾经到临.经:经临,经过.难为:这里指“ ...