关于-/bin/sh:xx(命令) not found 的几种原因和解决办法
2012-04-01 12:57
381 查看
编写背后:昨天移植无线网卡到mini2440基本完成到最后一步:用命令:iwlist scanning 搜索网络时串口终端却出现了 -/bin/sh: iwlist not found ,后来请教老范老师点拨知道是库问题,最后自己找到问题、解决问题,才有此引发有所总结......
关于-/bin/sh:xx(命令) not found 的几种原因:
1./bin/目录下没有这个命令;
2.bin/目录有这个命令,只是执行权限不够,或者程序执行权限不够;
3.程序需要的静态库或者动态库没有;
解决办法:
原因一的解决方法:安装busy box将busy box支持的命令安装到文件系统的bin目录下;(只要安装了busy box它会自动加载命令到bin目录下,这个你懂的,若不懂请看我的博文《根文件系统的制作》)
原因二的解决方法:在/bin/目录下找到对应的命令,修改其权限为777;具体操作: chmod 777 xx(命令) 【附加:在编写执行脚本文件时不能运行也大多是没有修改脚本权限的问题(命令其实就是一个特殊的脚本)】
原因三的解决方法:
(1)最“高效”的解决方法:用命令:arm-linux-readelf -d xxx(目标文件/命令) 查看xxx使用的动态库
如图:我的iwlist命令使用的动态库是libiw.so.29 、libm.so.6 和libc.so.6
于是我便去交叉编译器所在目录/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib下的动态库中寻找所需的上面三个库libiw.so.29 、libm.so.6 和libc.so.6 ,并复制到根文件系统的lib目录下:
(注意:这里我使用交叉编译器的版本为4.3.2的版本所以目录4.3.2有所不同即到/usr/local/arm/(编译器版本)/arm-none-linux-gnueabi/libc/armv4t/lib下的动态库中寻找)
(2)最“2”最笨的方法:把/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib下的所有动态库都拷贝到根文件系统的lib目录下;(但是这种方法在嵌入式开发里面无意增加了成本,拷贝了一些不必要的动态库文件,增大了根文件系统的体积)
关于-/bin/sh:xx(命令) not found 的几种原因:
1./bin/目录下没有这个命令;
2.bin/目录有这个命令,只是执行权限不够,或者程序执行权限不够;
3.程序需要的静态库或者动态库没有;
解决办法:
原因一的解决方法:安装busy box将busy box支持的命令安装到文件系统的bin目录下;(只要安装了busy box它会自动加载命令到bin目录下,这个你懂的,若不懂请看我的博文《根文件系统的制作》)
原因二的解决方法:在/bin/目录下找到对应的命令,修改其权限为777;具体操作: chmod 777 xx(命令) 【附加:在编写执行脚本文件时不能运行也大多是没有修改脚本权限的问题(命令其实就是一个特殊的脚本)】
原因三的解决方法:
(1)最“高效”的解决方法:用命令:arm-linux-readelf -d xxx(目标文件/命令) 查看xxx使用的动态库
如图:我的iwlist命令使用的动态库是libiw.so.29 、libm.so.6 和libc.so.6
于是我便去交叉编译器所在目录/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib下的动态库中寻找所需的上面三个库libiw.so.29 、libm.so.6 和libc.so.6 ,并复制到根文件系统的lib目录下:
(注意:这里我使用交叉编译器的版本为4.3.2的版本所以目录4.3.2有所不同即到/usr/local/arm/(编译器版本)/arm-none-linux-gnueabi/libc/armv4t/lib下的动态库中寻找)
(2)最“2”最笨的方法:把/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib下的所有动态库都拷贝到根文件系统的lib目录下;(但是这种方法在嵌入式开发里面无意增加了成本,拷贝了一些不必要的动态库文件,增大了根文件系统的体积)
相关文章推荐
- 关于-/bin/sh:xx(命令) not found 的几种原因和解决办法
- 关于-/bin/sh: 命令:not found的解决办法
- 关于-/bin/sh: 命令:not found的解决办法
- 菜鸟学习嵌入式 问题笔记之 关于-/bin/sh: 命令:not found的解决办法
- 菜鸟学习嵌入式 问题笔记之 关于-/bin/sh: 命令:not found的解决办法
- -/bin/sh: 命令:not found的解决办法
- ubuntu上pushd命令执行错误(/bin/sh: 1: pushd: not found)解决办法
- -/bin/sh: 命令:not found的解决办法
- 在嵌入式开发板中运行程序提示-/bin/sh: ./xx: not found的解决办法
- -/bin/sh: [命令/可执行程序]:not found的解决办法
- ubuntu下eclipse无法编译 /bin/sh: 1: g++ not found 解决办法
- HOSTCC scripts/basic/fixdep /bin/sh: line 1: gcc: command not found解决办法
- ubuntu下code::blocks无法编译 /bin/sh: 1: g++ not found 解决办法
- ubuntu下code::blocks无法编译 /bin/sh: 1: g++ not found 解决办法
- 关于arm-linux-gcc切换到root用户找不到命令的解决办法(command not found)
- Ubuntu下Code::Blocks无法编译 /bin/sh: 1: g++ not found 解决办法
- 交叉编译错误make: arm-none-linux-gnueabi-gcc:命令未找到 /bin/sh: 1: arm-none-linux-gnueabi-gcc: not found问题解决
- 交叉编译:/bin/sh not found 解决办法
- /bin/sh: 1: aeon-gcc: not found & error while loading shared libraries: libgcc_s.so.1问题的原因以及解决办法
- Ubuntu下Code::Blocks无法编译 /bin/sh: 1: g++ not found 解决办法