解决ubuntu中arm-linux-gcc not found

背景

运行交叉工具链却遇到问题,这种情况一般是在开发搭建环境的时候容易遇到的。

原因分析

  1. 注意检查是不是 换了bash的原因
    在Linux中我们经常使用 bash,但是有些人为了提高效率,换成了zsh,但是配置工具链的环境变量语句存在于 .bashrc ,与现在使用的shell无关。
    如果是这种情况,在 对应的rc文件 添加环境变量即可。
  2. 权限切换以后环境变量换了
    一般,我们配置环境变量的时候,root环境不会碰到;但是要是万一不小心切换到了root权限,可能也会有这样的问题。
  3. 如果遇到环境变量配置以后,能够找到版本(也就是说 输入 命令的开头按tab以后能够出现补全),如果还有问题,这是因为64位下运行32编译器缺少相应的库文件,所以运行时会报错
./arm-none-eabi-gcc
bash: ./arm-none-eabi-gcc: No such file or directory

那么只需要添加对于 32 位的环境即可:

sudo apt-get install lib32ncurses5  lib32z1

常见的执行错误

我们经常在执行二进制bin程序时,会遇到提示not found/no such file or directory/not executable等错误信息,在什么情况下会出现这种问题呢,我们一起罗列下几种常见的几种场景:

1.可执行bin程序确实不存在

这个错误就比较低级了,你的可执行bin没有打包或者拷贝进来,执行的时候,自然找不到了

2.可执行bin程序的路径不对

我们的bin不在$PATH包含的路径中,无法自动找到,则需要加上完整的路径执行

3.可执行程序bin为动态链接,且系统没有动态加载器

helloworld为动态链接,且系统没有/system/bin/linker
4.交叉编译器类型不相同

其中hello_world为x86编译的bin程序,无法在arm架构上运行

5.64位的bin程序运行在32位的系统

6.可执行程序bin为动态链接,缺少依赖的动态库

7.可执行程序bin存在,但是可执行bin为符合链接,源文件已经删除

8.可执行成bin存在,为动态链接,所依赖的动态库为符合链接,动态库链接的源文件已经删除

posted @ 2018-12-24 13:58  schips  阅读(5069)  评论(0编辑  收藏  举报