【问题:工具链是32位的】
所以我们就需要安装32位的兼容包:lib32z1
使用sudo apt-get install lib32z1,发现装不了。原因是ubuntu太新了,里面很多库都是新版本的,但是基于这个新版本的lib32z1还没有,所以不能装。
#apt-get install aptitude //安装aptitude工具
#aptitude install lib32z1 //安装lib32z1工具
[测试]
1、测试执行arm-xxx-gcc -v,提示找不到stdc++错误
2、
#./arm-hisiv300-linux-uclibcgnueabi-gcc -v
提示:./arm-hisiv300-linux-uclibcgnueabi-gcc: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
解决:安装lib32stdc++6-4.8-dbg
#sudo aptitude install lib32stdc++6-4.8-dbg
再次测试整体编译osdrv
(1)仍然提示找不到arm-hisiv300-linux-gcc
(2)修改Makefile中OSDRV_CROSS的路径,结果不行,分析原因是:命令行传参覆盖了
(3)export导出到环境变量,参考裸机课程1.4节,格式为:我们把这个到.bashrc #aston@ubuntu:~/samba_share/Hi3518E_SDK_V1.0.3.0/osdrv#
# vi ~/.bashrc
#exportPATH=/home/aston/samba_share/Hi3518E_SDK_V1.0.3.0/osdrv/arm-hisiv300-linux/bin:$PATH
现象
编译还是出错:原因分析名字不对,我们生成的是arm-hisiv300-linux-uclibcgnueabi,需要的是arm-hisiv300-linux
使用install脚本安装交叉编译工具链
我们发现海思给我们提供了脚本,而且我们的方法我们用sdk.cleanup就把/home/aston/samba_share/Hi3518E_SDK_V1.0.3.0/osdrv/arm-hisiv300-linux文件给清除了,所以把交叉编译工具放到/opt下
#aston@ubuntu:~/samba_share/Hi3518E_SDK_V1.0.3.0/osdrv/opensource/toolchain/arm-hisiv300-linux$ sudo ./cross.install.v300
export PATH=/opt/hisi-linux/x86-arm/arm-hisiv300-linux/target/bin:$PATH
arm-hisiv300-linux-gcc -v 就通过了测试