开发板运行可执行文件出现./hello: /lib/libc.so.6: version `GLIBC_2.34‘ not found (required by ./hello)

文章讲述了在Ubuntu环境下使用静态编译遇到的问题,由于交叉编译器版本过高,导致无法在开发板上运行。解决方案是检查并卸载高版本GCC,然后重新安装4.9.4版本。还提及了编译时可能出现的权限问题及其解决方法。
摘要由CSDN通过智能技术生成

但在ubuntu中使用静态编译arm-linux-gnueabihf-gcc hello.c -static hello 后,在开发板上可以运行./hello

猜测原因:ubuntu安装的交叉编译器版本过高

解决办法:卸载当前版本重新安装低版本

1.先arm-linux-gnueabihf-gcc -v 查看目前使用的gcc版本;

2.如果不是4.9.4。找到目前版本的位置which arm-linux-gnueabihf-gcc-版本号;

3.卸载当前版本rm -rf arm-linux-gnueabihf-gcc*;

4.重新下载4.9.4版本(参考正点原子Linux驱动开发:4.3.1 交叉编译器安装)

PS:

1.查看gcc版本命令gcc --version 和 arm-linux-gnueabihf-gcc -v 是不同的;两个命令的不同点在于gcc --version用于查看当前系统中默认GCC版本的信息,而arm-linux-gnueabihf-gcc -v用于查看针对ARM架构的交叉编译环境下的GCC版本信息,一般使用后者

2.编译时出现/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../lib/gcc/arm-linux-gnueabihf/4.9.4/../../../../arm-linux-gnueabihf/bin/ld: cannot open output file hello:权限不够。解决办法参考-->/usr/bin/ld: cannot open output file a.out: Permission deniedcollect2: error: ld returned 1 exit st_/usr/bin/ld: cannot open output file hello: permis-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值