如何使用Bazel构建Linux x86_64版本的TensorFlow Lite(R2.2)
解决macOS x86_64交叉编译Linux x86_64 TensorFlow Lite R2.2 JNI库的问题
步骤1:匹配Bazel版本
TensorFlow R2.2要求使用Bazel 0.29.1,先检查当前版本:
bazel --version
版本不符时,用Bazelisk指定版本运行:
bazelisk --version 0.29.1
步骤2:安装Linux交叉编译工具链
通过Homebrew安装x86_64 Linux目标的编译工具:
brew install x86_64-linux-gnu-gcc
步骤3:创建Bazel交叉编译配置文件
在TensorFlow源码根目录新建linux_x86_64.bazelrc,写入以下内容:
build:linux_x86_64 --crosstool_top=@bazel_tools//tools/cpp:toolchain build:linux_x86_64 --host_crosstool_top=@bazel_tools//tools/cpp:toolchain build:linux_x86_64 --cpu=x86_64-linux build:linux_x86_64 --cxxopt="-std=c++11" build:linux_x86_64 --linkopt="-lstdc++" build:linux_x86_64 --extra_toolchains=@local_config_cc//:cc-toolchain-x86_64-linux-gnu
步骤4:设置交叉编译环境变量
终端中导出环境变量,指定Linux工具链路径:
export CC=x86_64-linux-gnu-gcc export CXX=x86_64-linux-gnu-g++ export AR=x86_64-linux-gnu-ar export LD=x86_64-linux-gnu-ld
步骤5:重新配置TensorFlow
运行./configure,配置过程中:
- 询问是否为交叉编译配置时,选择
Yes - 指定目标平台为
x86_64 Linux - 工具链路径直接使用Homebrew默认安装路径(一般为
/usr/local/bin/x86_64-linux-gnu-*) - 禁用Apple特有的加速选项(如Apple Accelerator),避免引入主机依赖
步骤6:执行交叉编译
运行以下命令构建Linux目标的JNI库:
bazel build --config=linux_x86_64 //tensorflow/lite/java:libtensorflowlite_jni.so
构建完成后,生成的文件位于bazel-bin/tensorflow/lite/java/目录下,可通过file命令验证架构:
file bazel-bin/tensorflow/lite/java/libtensorflowlite_jni.so
输出应显示为ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked。
内容的提问来源于stack exchange,提问作者Jake Wade
相关产品推荐
相关产品推荐

