树莓派4 TensorFlow Lite C++ API源码编译遇多种问题,求解决方案
解决树莓派TensorFlow Lite C++ API源码构建问题
1. Ubuntu 22.04 CMake构建失败(g++版本过旧)
- 先检查当前g++版本:
g++ --version - Ubuntu 22.04默认g++为11.x,TensorFlow Lite构建需要更高版本(如12+),执行以下命令升级:
sudo apt install gcc-12 g++-12 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-12 120 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-12 120 - 验证切换成功:
g++ --version显示12.x即可 - 重新执行CMake构建时指定编译器:
cmake .. -DCMAKE_C_COMPILER=gcc-12 -DCMAKE_CXX_COMPILER=g++-12 [你的其他构建参数]
2. Debian 12构建时机器卡死
- 卡死多因并行编译线程过多导致内存耗尽,即使16GB内存也可能触发OOM
- 限制构建并行线程数:
- CMake+Make构建:
make -j6(按CPU核心数减半设置,12核用-j6,6核用-j3) - Ninja构建:
ninja -j6
- CMake+Make构建:
- 临时添加8GB交换分区缓解内存压力:
sudo fallocate -l 8G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile - 构建前关闭所有后台占用资源的程序,集中资源到构建任务
3. Ubuntu 22.04 Bazel构建进程无限运行
- 首次构建会下载大量依赖,大概率是网络不稳定导致卡住,先确认网络连接正常
- 限制并行线程并延长超时时间:
bazel build --jobs=6 --remote_timeout=3600 //tensorflow/lite/c:tensorflowlite_c - 禁用远程缓存改用本地缓存:
echo "build --noremote_cache" >> ~/.bazelrc - 若仍卡住,清理Bazel缓存后重试:
bazel clean --expunge
内容的提问来源于stack exchange,提问作者Matteo
相关产品推荐
相关产品推荐

