当前位置:  技术问答>linux和unix

关于./xxx 提示not found问题

    来源: 互联网  发布时间:2017-02-26

    本文导语:  板子原来是arm-linux-gcc 3.4.5编译器,一切正常。我想换成armv4t-crosstool-linux-gnueabi- gcc4.1.1编译器. 用armv4t-crosstool-linux-gnueabi-gcc -o test test.c 后生成的文件放到板子上 -/bin/sh: ./test: not found。 于是我就cp -frd /usr/local/ar...

板子原来是arm-linux-gcc 3.4.5编译器,一切正常。我想换成armv4t-crosstool-linux-gnueabi-
gcc4.1.1编译器.
用armv4t-crosstool-linux-gnueabi-gcc -o test test.c 后生成的文件放到板子上
-/bin/sh: ./test: not found。
于是我就cp -frd /usr/local/arm/4.1.1/armv4t-crosstool-linux-gnueabi/lib/* /nfsroot/lib/
就出现:
#ls
ls: error while loading shared libraries: libc.so.6: cannot handle TLS data
# ./test
-/bin/sh: ./test: Permission denied

怀疑是busy box用的编译器与现在的编译器不同,所以所需要的库文件也不同。于是我就的编译器的库文件另外放在/usr/lib:
cp -frd /usr/local/arm/4.1.1/armv4t-crosstool-linux-gnueabi/lib/* /nfsroot/usr/lib/
而且增加路径LD_LIBRARY_PATH=/usr/lib/:$LD_LIBRARY_PATH
结果还是not found

再接着,我就把busy box重新用armv4t-crosstool-linux-gnueabi-gcc编译出来,把bin sbin 的usr都拷过去,指令就都不能用。

如果我编译test的时候加上-static就没问题,证明肯定还是库问题。应该放哪些库在什么地方呢?????救助???

|
我对加载机制不熟,有2个猜测
猜测1
busybox带的加载器是3.4.5,检查到你的程序要的是更高版本的库,直接返回not found,根本不去找库

猜测2
你拷贝的库不对
我的经验是 执行4.1.1工具链 ,-v 查看版本
--with-sysroot后面的目录才是正确的库

|
1.你板子上的文件是否都是用4.1.1编译出来的,如果不是最好用同一款gcc编译。
2.你的busybox应该是静态编译的,如果不是请静态编译。
3.你的交叉编译环境是否配对了,你的交叉编译环境最好用4.1.1的gcc进行编译。
4.你用ldd或者readelf之类的工具看看你的test依赖关系,一般简单程序只是依赖libc而已,如果这样就检查一下你的libc是否是4.1.1编译出来的,板子上和你的环境中的libc是否一致。
只想到这么多了,其他的想不起来了。

|

你可以在宿主机上执行file test查看该文件需要哪一个库,然后把这个库文件拷贝到开发板根文件系统的/lib目录下,一般问题就会得到解决。

    
 
 

您可能感兴趣的文章:

  • 用anjuta创建的gnome 2.0 project的c++程序无法编译,提示缺少gtkmm/xxx文件
  • 急(在線)﹕安裝程序提示缺少xxx.so.2文件﹐怎么辦﹖
  • Redhat 的 fedora版本是刚刚安装好的,就发现了问题:终端里执行很多命令时提示:bash: xxx 权限不够
  • 各位高手 linux 下编译 java 程序 出现 提示jc1 "Cannot allocate xxx bytes after allocating yyyy bytes"
  • 关于telnet xxx.xxx.xxx.xxx:80的使用方法问题
  • SMF问题:"svcadm enable xxx" 中'enable'的执行方法可以修改么?
  • 初学者的问题:为什么要有<jsp:useBean id="xxx" ...
  • 用xxxx.jap?title=XXX 传送参数的问题?
  • ps -ef |grep xxx 显示CPU时间占用非常规的问题。
  • 问个问题,我浏览器其它www.xxx.com都能访问,只有一个不能访问,谁能帮我!
  • Mysql中Table ‘XXX’ is marked as crashed and last (automatic?)问题解决方法
  • shell问题,如何将一个目录中的带序号的所有a_xxx.tar.gz文件的序号向前滚动?
  • Mysql中Insert into xxx on duplicate key update问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 交叉编译的 app 放到目标板上 运行 -/bin/sh: XXX: not found
  • 请问 . /xxx/xxx 起什么作用?(注意:. 与 /xxx/xxx 中间有空格)
  • 如何使用shell命令取到本机ip,注意只有本机ip的字符串 ,比如“xxx.xxx.xxx.xxx”
  • 哪位大侠指点下如何定位segfault at xxx rip xxx rsp xxx error 4???
  • linux下是否有和dir xxx.xxx /s等效的命令啊
  • select * from username="xxx" and passwd="xxx"如果有记录现实YES,没有现实没有,代码如何编!!(解决就给40分)
  • (急)ps -elf|grep XXX后怎么查看XXX涉及进程的PID
  • Redhat 下如何安装软件?我下了一个名为XXX_rpm.bin的文件.
  • DEVICEHIGH=XXX
  • 求教linux的ARCH ?= $(XXX)中符号“?=”怎么理解?先谢过
  • 解决mysql ERROR 1017:Can't find file: '/xxx.frm' 错误
  • 谁知道linux下字符方式下的bt客户端软件。是可以用./xxx 来运行的
  • 请问:grep -r xxx xxxx 中-r选项是什么意思啊,有什么作用啊?
  • 在linux中"XXX.l"是什么文件(文件扩展名为L),用gcc怎么编译?谢谢大家!
  • 关于HAVE_XXX的疑问?
  • 怎样排除编译错误:Undefined symbol:XXX
  • 内核模块加载时insmod:error inserting 'XXX.ko':-136704000 Success
  • 请问: 在要想删掉进程名为"xxx"的进程,在shell脚本中该写什么啊?
  • 请问:出现xxx.h : no such file or directory ,时,我该怎么办?
  • 请问response.sendRedirect(XXX)能不能转交到一个新开的窗口,而不是当前页。
  • libtool编译出错,报undefined reference to `_xxx@GLIBC_2.3.2'


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,