gcc-linaro-arm-linux-gbueabihf 编译后执行后报错 “no such file orr directory”

本文记录了解决AM3558开发板使用Linaro交叉编译器编译后出现“nosuchfileorrdirectory”错误的过程。通过创建软链接ld-linux-armhf.so.3指向ld-2.16.so成功解决问题。

情景:手里拿到一块AM3558的开发板,于是在TI官网上下载了 linaro交叉编译器。结果编译后,拷贝到板子中,提示 “no such file orr directory”。


通过file 和strings该文件,显示


考虑是由于内核版本和库的问题。继续google,说Linaro中有些库的名字做了修改。于是考虑一种解决方案:

在开发板上lib下建立一个软链接 ld-linux-armhf.so.3指向 ld-2.16.so  

最终解决该问题。

另外,用arm-arago-linux-gnueabi (2011)也可以进行编译并正常执行,怀疑这个板子的年代得有多久远,有时间重新烧写新内核吧。

找资料的时候看到一篇关于交叉编译器 arm-linux-gnueabi 和 arm-linux-gnueabihf 的区别,拿来分享一下。

### GCC-LinaroGCC-ARM 的区别及用途 GCC-LinaroGCC-ARM 都是针对 ARM 架构优化的交叉编译工具链,但在开发背景、目标受众和支持的功能上存在一些差异。 #### 开发背景与支持范围 GCC-Linaro 是由 Linaro 组织维护的一个分支版本,专注于为 ARM 和 AArch64 平台提供高度优化的编译器工具链。它定期基于主线 GNU 工具链进行更新,并加入特定于 ARM 的补丁和改进[^2]。相比之下,GCC-ARM 则是由 Arm 官方发布的工具链,旨在为主流开发者提供稳定且经过验证的支持环境[^3]。 #### 性能优化与功能特性 在性能方面,GCC-Linaro 更倾向于实验性和前沿性的优化技术,适合那些希望利用最新硬件特性的嵌入式系统开发者或研究人员。而 GCC-ARM 则更注重兼容性和稳定性,在企业级应用中更为常见[^4]。 #### 使用场景分析 对于需要紧跟最新技术和标准的应用场合来说,比如实时操作系统或者高性能计算领域内的项目开发工作,则可以选择使用 GCC-Linaro;而对于追求长期支持以及广泛适用性的商业产品而言,采用官方推荐的标准版——即 GCC-ARM 可能会更加合适[^5]。 ```bash # 下载并安装 GCC-Linaro 示例命令 wget https://releases.linaro.org/components/toolchain/binaries/latest-7/aarch64-linux-gnu/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz tar xf gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu.tar.xz export PATH=$PWD/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin:$PATH # 测试编译简单程序 echo '#include <stdio.h>\nint main() { printf("Hello from aarch64\\n"); return 0; }' > test.c aarch64-linux-gnu-gcc -o test test.c file ./test ``` 上述代码展示了如何下载、解压并测试 GCC-Linaro 编译器来为目标架构生成可执行文件的过程。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值