centos安装arm交叉工具链后常见的问题解决

 

[root@localhost osdrv]# arm-hisiv400-linux-gcc -v
bash: /opt/hisi-linux/x86-arm/arm-hisiv400-linux/target/bin/arm-hisiv400-linux-gcc: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
这是缺少32位的库,按照如下安装:

[root@localhost osdrv]# yum install glibc.i686

安装完毕后再次运行:

[root@localhost osdrv]# arm-hisiv400-linux-gcc -v
arm-hisiv400-linux-gcc: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory

这是缺少libstdc++.so.6:

 

按照如下查找安装:

[root@localhost osdrv]# yum whatprovides libstdc++.so.6
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
 * base: mirrors.btte.net
 * epel: mirrors.opencas.cn
 * extras: mirrors.opencas.cn
 * updates: mirrors.opencas.cn
libstdc++-4.8.3-9.el7.i686 : GNU Standard C++ Library
Repo        : base
Matched from:
Provides    : libstdc++.so.6



[root@localhost osdrv]# yum install libstdc++-4.8.3-9.el7.i686

 

 

好了,大功告成:

[root@localhost osdrv]# arm-hisiv400-linux-gcc -v
Using built-in specs.
COLLECT_GCC=arm-hisiv400-linux-gcc
COLLECT_LTO_WRAPPER=/opt/hisi-linux/x86-arm/arm-hisiv400-linux/bin/../libexec/gcc/arm-hisiv400-linux-gnueabi/4.8.3/lto-wrapper
Target: arm-hisiv400-linux-gnueabi
Configured with: '../gcc~linaro-4.8-2013.12/configure' --host=i386-redhat-linux --build=i386-redhat-linux --target=arm-hisiv400-linux-gnueabi --prefix=/home/sying/wucaiyuan_toolchain/v400/glibc_gcc4.8_linaro_toolchain/install/arm-hisiv400-linux --enable-threads --disable-libmudflap --disable-libssp --disable-libstdcxx-pch --with-arch=armv5te --with-gnu-as --with-gnu-ld --enable-languages=c,c++ --enable-shared --enable-lto --enable-symvers=gnu --enable-__cxa_atexit --enable-nls --enable-clocale=gnu --enable-extra-hisi-multilibs --with-sysroot=/home/sying/wucaiyuan_toolchain/v400/glibc_gcc4.8_linaro_toolchain/install/arm-hisiv400-linux/target --with-build-sysroot=/home/sying/wucaiyuan_toolchain/v400/glibc_gcc4.8_linaro_toolchain/install/arm-hisiv400-linux/target --with-gmp=/home/sying/wucaiyuan_toolchain/v400/glibc_gcc4.8_linaro_toolchain/install/host_lib --with-mpfr=/home/sying/wucaiyuan_toolchain/v400/glibc_gcc4.8_linaro_toolchain/install/host_lib --with-mpc=/home/sying/wucaiyuan_toolchain/v400/glibc_gcc4.8_linaro_toolchain/install/host_lib --with-ppl=/home/sying/wucaiyuan_toolchain/v400/glibc_gcc4.8_linaro_toolchain/install/host_lib --with-cloog=/home/sying/wucaiyuan_toolchain/v400/glibc_gcc4.8_linaro_toolchain/install/host_lib --with-libelf=/home/sying/wucaiyuan_toolchain/v400/glibc_gcc4.8_linaro_toolchain/install/host_lib --enable-libgomp --disable-libitm --enable-poison-system-directories --with-libelf=/home/sying/wucaiyuan_toolchain/v400/glibc_gcc4.8_linaro_toolchain/install/host_lib --with-pkgversion=Hisilicon_v400 --with-bugurl=http://www.hisilicon.com/cn/service/claim.html
Thread model: posix
gcc version 4.8.3 20131202 (prerelease) (Hisilicon_v400)

转载于:https://www.cnblogs.com/liangwode/p/5007079.html

本资源为arm-linux下的海思编译链工具V300 C语言有三种标准库如下: 1.Glibc glibc = GNU C Library 是GNU项(GNU Project)目,所实现的 C语言标准库(C standard library)。 目前,常见的桌面和服务器中的GNU/Linux类的系统中,都是用的这套C语言标准库。 其实现了常见的C库的函数,支持很多种系统平台,功能很全,但是也相对比较臃肿和庞大。 2.uClibc 一个小型的C语言标准库,主要用于嵌入式。 其最开始设计用于uClinux(注:uClinux不支持MMU),因此比较适用于微处理器中。 对应的,此处的u意思是μ,Micro,微小的意思。 uClibc的特点: (1)uClibc比glibc要小很多。 (2)uClibc是独立的,为了应用于嵌入式系统中,完全重新实现出来的。和glibc在源码结构和二进制上,都不兼容。 3.EGLIBC EGLIBC = Embedded GLIBC EGLIBC是,(后来)glibc的原创作组织FSF所(新)推出的,glibc的一种变体,目的在于将glibc用于嵌入式系统。 EGLIBC的目标是: (1)保持源码和二进制级别的兼容于Glibc 源代码架构和ABI层面兼容 如果真正实现了这个目标,那意味着,你之前用glibc编译的程序,可以直接用eglibc替换,而不需要重新编译。 这样就可以复用之前的很多的程序了。 (2)降低(内存)资源占用/消耗 (3)使更多的模块为可配置的(以实现按需裁剪不需要的模块) (4)提高对于交叉编译(cross-compilation)和交叉测试(cross-testing)的支持 【目前了解到的海思交叉编译工具链的应用环境】 arm-hisiv100-linux为基于uclibc的工具链,arm-hisiv200-linux 为基于 glibc 的工具链; arm-hisiv300-linux为基于uclibc的工具链,arm-hisiv400-linux 为基于 glibc 的工具链; arm-hisiv500-linux为基于uclibc的工具链,arm-hisiv600-linux 为基于 glibc 的工具链。 (在开发的时候,你编译内核所用的交叉编译链跟用户的应用程序所用的交叉编译链一定需要相同,不然没法调用系统内核的依赖库)   其中eglibc这种很容易被人开发者忽视,从而选错了编译工具链。 uClibc和Glibc并不相同,两者有许多不同之处,有可能给你带来一些问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值