解决ubuntu中arm-linux-gcc not found
背景
运行交叉工具链却遇到问题,这种情况一般是在开发搭建环境的时候容易遇到的。
原因分析
- 注意检查是不是 换了bash的原因
在Linux中我们经常使用 bash,但是有些人为了提高效率,换成了zsh,但是配置工具链的环境变量语句存在于 .bashrc ,与现在使用的shell无关。
如果是这种情况,在 对应的rc文件 添加环境变量即可。 - 权限切换以后环境变量换了
一般,我们配置环境变量的时候,root环境不会碰到;但是要是万一不小心切换到了root权限,可能也会有这样的问题。 - 如果遇到环境变量配置以后,能够找到版本(也就是说 输入 命令的开头按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存在,为动态链接,所依赖的动态库为符合链接,动态库链接的源文件已经删除
如果说我的文章对你有用,只不过是我站在巨人的肩膀上再继续努力罢了。
若在页首无特别声明,本篇文章由 Schips 经过整理后发布。
博客地址:https://www.cnblogs.com/schips/
若在页首无特别声明,本篇文章由 Schips 经过整理后发布。
博客地址:https://www.cnblogs.com/schips/