Ubuntu18 Arm64 编译安装Bazel

在这里插入代码片@TOC

x86_64移植到aarch64的困惑

找了好久没有找到合适的aarch64编译安装bazel的方法,之前我是一步步跟着官方走的,在x86_64平台上只要添加源就能很简单安装你要的bazel版本,但是在aarch64的平台上就要自己搭建编译环境了(找了好久没有找到预编译库)

搭建编译环境

bazel编译环境主要依赖java和protobuffer,我安装的java环境是1.8.0_152,不要用大于1.8.0_161的版本,会报一个语言的错误,这个错误是bazel本身导致的,我没有仔细研究原因,有兴趣的可以深入钻研下。

  1. Ubuntu环境
    我使用的板子是RK3399,系统是Ubuntu18.04 ARM64版
  2. java安装
    在Ubuntu18版本上受到源的限制我没有找到jdk1.8.0_152的版本,所以我到oracle官方网站下载指定版本,这里就不具体说怎么找到历史版本了,这个请个人另外搜索吧。只说一下环境不要搞错了
    jdk-8u152-linux-arm64-vfp-hflt.tar.gz 我用的是这个版本,
    至于环境变量怎么配置大家自行到网上搜索教程吧。
  3. zip安装
    在这里插入图片描述
    在安装之前可以先sudo apt-get install zip执行一下子,会安装zip和unzip两个工具。
  4. 下载bazel源代码(重点来了)
    我是把bazel源代码先同步到码云上,这个是git地址
    https://gitee.com/anold/bazel.git,将代码clone到本地,进入bazel文件夹执行./compile.sh 居然报错了。
    Ubuntu18 Arm64 编译安装Bazel_第1张图片这是一个小插曲,不过不要紧它已经告诉我们怎么解决了,你只要到它给你的网址下面找到你要的版本源代码就行了,我要使用bazel编译tensorflow1.12.0版本所以我下载的bazel版本是0.15.0(注意:bazel和tensorflow版本是有对应关系的,具体可以到这个地址查看https://tensorflow.google.cn/install/source),下载下来解压就行了。我下载的是这个:bazel-0.15.0-dist.zip,切记不要下载成x86的!!!将下载的zip放到/home/用户路径下,执行:mkdir bazel && unzip bazel-0.15.0-dist.zip -d bazel,之后进入bazel文件夹执行:./compile.sh 静静等待编译完成吧.
  5. 设备状态
    5. 成功
    如果出现以下打印那么恭喜你,你已经成功一大半了,如果出现插曲就要检查下环境配置了
    在这里插入图片描述
    最后打开output文件夹执行:./bazel会有个初始化的过程,如果正常打印,没有异常抛出那么恭喜你成功了。至于bazel怎么用还请另查文档吧!
    Ubuntu18 Arm64 编译安装Bazel_第2张图片
  6. 留在最后
    1、bazel和tensorflow有版本依赖关系,如果使用bazel编译tensorflow源代码切记版本不要搞错了。
    2、java版本最好选用1.8.0_152及以下版本,否则本教程可能不适合你的环境,如果出了错有可能真的是bazel或java环境本身引起的未必容易解决
    3、RAM>=4GB,ROM>=16GB,编译整个过程RAM占用一度大于2GB,可能会内存溢出
    4、CPU整个过程都几乎满载,编译过程中注意散热问题,不要编译到一般机器死掉,RK3399整个编译过程1小时左右
    5、不是太喜欢写东西,如果网上有适合我的教程我可能就不会写这篇文章了,到底还得自己动手丰衣足食。

你可能感兴趣的:(aarch64,arm64,bazel,ubuntu,移植)