64bit ubuntu 16.04 安装海思编译32位工具链

获取海思编译工具链

想办法获得Hi3519V101R001C02SPC022.rar工具包。

配置全部的环境可以参考 该博客,这里只是介绍一些在配置交叉编译工具链时遇到的坑。

确定Ubuntu操作系统位数
使用uname -a命令来确定Ubuntu操作系统的版本,如果确定为32bit,那就无需进行后面安装32bit库的过程。

如有类似如下的显示,那么你的操作系统就是64bit的,可以根据后续的内容进行选择性的问题解决。

Linux f8eb64277496 4.9.75-linuxkit-aufs #1 SMP Tue Jan 9 10:58:17 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

遇到的问题及解决方法

我这里选择使用Docker进行安装,使用的镜像为精简过的操作系统。

解压应用找不到

表现:tar (child): lbzip2: Cannot exec: No such file or directory
解决:使用apt installapt-get install方式安装相应的解压应用,我这里安装了两个lbzip2和bzip2

解压时出现”Directory renamed before its status could be extracted”问题

表现:在解压工具链安装包时,可能会出现该问题(Docker中概率会比较高,因为貌似会对元文件进行修改)
解决:安装bsdtar,apt-get install -y bsdtar,其用法和tar一样。安装完成后,在arm-hisiv500-linux.install文件中将使用tar命令的部分,改为bsdtar即可。

工具链编译器无法执行,报”No such file or directory”

表现:在运行工具链时,文件明明存在,但还是会出现没有此文件的提示。

解决:
这是由于在64位系统中,没有安装32位库造成的。

root@f8eb64277496:/opt/hisi-linux/x86-arm/arm-hisiv500-linux/bin# apt install ia32-libs
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package ia32-libs is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
However the following packages replace it:
lib32ncurses5 lib32z1

安装lib32ncurses5,lib32z1这两个库之后,问题解决。

libstdc++.so.6库找不到

表现:在执行工具链中的编译器时,会出现这样的动态库找不到的问题:


root@f8eb64277496:/opt/hisi-linux/x86-arm/arm-hisiv500-linux/bin# ldd ./arm-hisiv500-linux-uclibcgnueabi-gcc
linux-gate.so.1 => (0xf7727000)
libstdc++.so.6 => not found
libm.so.6 => /lib32/libm.so.6 (0xf76ca000)
libgcc_s.so.1 => not found
libc.so.6 => /lib32/libc.so.6 (0xf7516000)
/lib/ld-linux.so.2 (0xf7728000)

这是用于32bit库没有安装libc6库的原因。

解决:执行apt-get install lib32stdc++6即可。参考该博客

你可能感兴趣的:(前端移植)