Bazel 安装及遇到的问题

bazel支持的平台有Ubuntu Linux、Mac OS X、Windows等,本文基于Ubuntu14.04下的bazel,其它平台的安装参考官网安装教程。

Bazel安装

1.先安装Bazel的依赖
sudo add-apt-repository ppa:webupd8team/java

sudo apt-get install openjdk-8-jdk openjdk-8-source

sudo apt-get install pkg-config zip g++ zlib1g-dev unzip

注意:如果你没有安装add-apt-repository命令,需要执行sudo apt-get install software-properties-common命令
2.下载安装文件,然后再改变可执行权限
https://github.com/bazelbuild/bazel/releases
如:https://github.com/bazelbuild/bazel/releases/download/0.5.3/bazel-0.5.3-installer-linux-x86_64.sh

下载好bazel安装文件后,执行如下步骤:
(1)复制到虚拟机中, 终端然后切换到.sh文件存放的路径,文件添加可执行权限:
$ chmod +x bazel-0.5.3-installer-linux-x86_64.sh

(2)然后执行该文件:
$ ./bazel-0.5.3-installer-linux-x86_64.sh --user

注意:--user选项表示bazel安装到HOME/bin目录下,并设置.bazelrc的路径为HOME/.bazelrc。
(3)设置Bazel 环境变量
$ sudo gedit ~/.bashrc

在 ~/.bashrc文件的末尾添加
export PATH=/home/ckt/bin:$PATH
source ~/.bashrc

安装成功后如下图所示:
Bazel install ok.png

遇到的问题及解决方法

1.下载安装文件大小有问题,出错的文件只有8M
Bazel size error.png

解决方法:重新下载安装文件,大小大约201M,https://github.com/bazelbuild/bazel/releases/download/0.5.3/bazel-0.5.3-installer-linux-x86_64.sh

2.编译tensorflow jar出问题
(1)编译目录出错
Bazel build directory error.png

解决方法:在tensorflow源码根目录执行

(2)下载包出错
Bazel build network error.png

解决方法:翻墙

(3)WORKSPACE中的Android SDK未配置
Bazel build sdk error.png

解决方法:修改WORKSPACE文件:在/tensorflow目录下的WORKSPACE文件,找到如下一段代码,对应配置好你的sdk版本以及位置,还有ndk的版本和位置,并且去掉注释:

   # Uncomment and update the paths in these entries to build the Android demo.

   android_sdk_repository(
       name = "androidsdk",
       api_level = 23,  //设置成你安装sdk的最高版本,对应修改manifest.xml以及gradle的target
       # Ensure that you have the build_tools_version below installed in the
       # SDK manager as it updates periodically.
       build_tools_version = "25.0.2",
       # Replace with path to Android SDK on your system
       path = "/home/ckt/Android/Sdk",
   )

注意:
api_level需要设置成你本地sdk最高的版本,推荐23及以上,在android:build.gradle 以及AndroidManifest.xml也对应修改targetSdkVersion 

3.编译tensorflow so库出问题,WORKSPACE中的Android NDK版本不对
其错误之一如下图:
Bazel build .so error.png
解决方法:配置成android-ndk-r12b版本

   # Android NDK r12b is recommended (higher may cause issues with Bazel)
   android_ndk_repository(
       name="androidndk",
       path="/home/ckt/projects/tools/android-ndk-r12b",
       # This needs to be 14 or higher to compile TensorFlow.
       # Please specify API level to >= 21 to build for 64-bit
       # archtectures or the Android NDK will automatically select biggest
       # API level that it supports without notice.
       # Note that the NDK version is not the API level.
       api_level=14)

注意:ndk的版本,推荐使用r12,否则bazel编译的时候会报错。

另外:编译完毕后,android_tensorflow_inference_java.jar和libtensorflow_inference.so的路径为: 
/tensorflow/bazel-bin/tensorflow/contrib/android

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值