Bazel 安装及遇到的问题

来源:互联网 发布:如何管理顾客数据 编辑:程序博客网 时间:2024/04/27 05:00

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

原创粉丝点击