opt/buildroot-gcc342/bin/mipsel-linux-gcc: Command not found解决办法
2016-08-09 17:09
549 查看
1.
Command not found错误的确认
用mipsel-linux-uclibc-gcc编译Uboot 时,出现Command not found错误,但是我检查了编译工具的路径等是正确的,之后在编译工具目录直接运行mipsel-linux-uclibc-gcc -v,也会出现Command
not found,所以确定该问题跟编译工
具本身或系统环境有关。
通过网上一番搜索后发现是64位系统中缺少32位库文件导致的,通过下面3条命令可以确认:
(1)通过uname -m 可查看主机Ubuntu系统是64位的
x86_64
(2)mipsel-linux-uclibc-gcc是32位可执行文件
mipsel-linux-uclibc-gcc: ELF 32-bit LSB executable, Intel 80386, version
1 (SYSV), dynamically linked (uses shared libs),
(3)ldd mipsel-linux-uclibc-gcc
是dynamic executable,但ldd显示not a dynamic executable
2. 解决办法
$readelf mipsel-linux-uclibc-gcc -l | grep ld-linux
<
4000
span style="color:rgb(51,51,51);font-family:Arial;font-size:14px;line-height:26px;">[Requesting program interpreter: /lib/ld-linux.so.2]
找了一下,没有返回
$ locate ld-linux.so.2
再找:
$ locate ld-linux
/lib/x86_64-linux-gnu/ld-linux-x86-64.so.2
/lib64/ld-linux-x86-64.so.2
/usr/share/man/man8/ld-linux.8.gz
/usr/share/man/man8/ld-linux.so.8.gz
所以知道缺少32位版本libstdc++6:i386,于是
$ sudo apt-get install libstdc++6:i386
再次找ld-linux:
$ sudo updatedb
$ locate ld-linux.so.2
/lib/ld-linux.so.2
/lib/i386-linux-gnu/ld-linux.so.2
再次对它ldd:
$ ldd
mipsel-linux-uclibc-gcc
linux-gate.so.1 => (0xf7719000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf7552000)
/lib/ld-linux.so.2 (0xf771a000)
返回的就是它需要的动态链接库了, 如果其中有not found的项, 还需要安装相应库,假如:
libSM.so.6 => not found
使用命令安装:
$ sudo apt-get install libSM6:i386
可以发现, 安装的包的名字由缺少的库的 名字+版本+:+类型 决定的, 如 libfreetype.so.6 对应的包就是 libfreetype6:i386
就是这样把所有not found的库都装上, 这样这个二进制程序应该就可以使用了.
$./mipsel-linux-uclibc-gcc -v:
....gcc version 3.4.2
参考文章:http://forum.ubuntu.org.cn/viewtopic.php?t=462532
http://superuser.com/questions/194254/why-would-an-executable-say-it-doesnt-exist-when-i-try-to-run-it
==========================================================
1. ldd命令
ldd 是我们经常用来检测ELF文件依赖的好工具
ldd 看我的程序时却输出 :not a dynamic executable
其实原因很简单就是我的程序是x64的. 而我把这个x64的程序放到了x32的机器上,用ldd看就是这种效果.
查看系统版本 :
file /bin/bash
2. locate命令
locate命令用于查找文件,它比find命令的搜索速度快,它需要一个数据库,这个数据库由每天的例行工作(crontab)程序来建立。当我们建立好这个数据库后,就可以方便地来搜寻所需文件了。
相关文章推荐
- linux grep命令
- 【Linux总结】Linux命令学习二
- linux定时任务的设置
- Linux 从core信息中找到TLS信息
- Linux入门笔记——less
- Linux6.3搭建ftp服务器
- Linux环境下Android JNI程序的编译
- linux常用命令-帮助命令man,whatis,apropos,info,help
- centos7 设置本地光盘yum源
- linux 下 将一个已有目录添加到git服务器
- centos 7 升级后yum install出现Exiting on user cancel
- C++win32、win64、linux32、linux64中各数据类型占字节数
- linux16.04 中创建 有名管道 fifo
- linux文本编辑之王——vim
- linux移植系统遇到的jdk问题
- install composer for php 7 on CentOS 7
- Linux下C++访问MySQL
- linux移植中Makefile和Kconfig
- linux常用命令的英文单词缩写
- linux磁盘状况监测