编译libtensorflowlite_c.so

  • 环境:wsl/linux
  • 需要充足的内存和硬盘空间

安装基础工具

  • python版本 >= 3.9
  • 可以使用虚拟环境
sudo apt-get update
sudo apt-get install build-essential git unzip python3 python3-pip

安装bazel

curl -L https://github.com/bazelbuild/bazel/releases/download/7.1.4/bazel-7.1.4-installer-linux-x86_64.sh -o bazel-installer.sh
chmod +x bazel-installer.sh
./bazel-installer.sh --user

下载ndk

unzip android-ndk-r25b-linux.zip -d ~/
echo 'export ANDROID_NDK_HOME="$HOME/android-ndk-r25b"' >> ~/.bashrc
echo 'export PATH="$ANDROID_NDK_HOME:$PATH"' >> ~/.bashrc
source ~/.bashrc

下载android sdk

  • 直接下载android studio 或者用命令行
  • 先下载java,最好选17
sudo apt update
sudo apt install openjdk-17-jdk 
mkdir -p ~/Android/Sdk/cmdline-tools
cd ~/Android/Sdk/cmdline-tools

# 下载并解压(替换为实际版本号)
wget https://dl.google.com/android/repository/commandlinetools-linux-10406996_latest.zip
unzip commandlinetools-linux-10406996_latest.zip
mv cmdline-tools latest  # 重命名为 `latest`

# 配置环境变量
nano ~/.bashrc
export ANDROID_HOME="$HOME/Android/Sdk"
export PATH="$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools:$ANDROID_HOME/emulator:$PATH"
# ctrl + x 退出保存
source ~/.bashrc

# 安装组件
sdkmanager --update
sdkmanager "platform-tools" "build-tools;34.0.0" "platforms;android-34" "emulator"

下载tensorflow源码

git clone https://github.com/tensorflow/tensorflow.git
cd tensorflow
git checkout r2.14  # 切换到指定版本

运行交互式配置脚本

./configure
  • 按需配置

编译

  • 通用编译(ARM64 架构)
bazel build -c opt \
  --config=android_arm64 \
  --cxxopt='--std=c++17' \
  //tensorflow/lite/c:libtensorflowlite_c.so

生成文件

生成库位于

bazel-bin/tensorflow/lite/c/libtensorflowlite_c.so