Ubuntu 20.04安装TFLite C++时CMake、Bazel编译失败问题求助
解决方案
1. Bazel报错修复
你的Bazel编译找不到numpy是Python版本不匹配导致的。从编译日志可以看到,当前编译配置强制指定了Python2作为宿主Python版本,而Ubuntu 20.04默认/usr/bin/python指向Python2,你大概率只给Python3安装了numpy,没有安装Python2对应的numpy包。
两种修复方案可选:
- 执行命令
sudo apt install python-numpy安装Python2版本的numpy - 重新运行TensorFlow源码根目录下的
./configure脚本,配置编译选项时指定Python3的可执行文件路径,比如/usr/bin/python3
2. CMake编译内存溢出修复
CMake默认会用等于CPU核心数的并行任务编译,内存不足时就会出现后期崩溃的问题,你可以手动限制编译并行数:
# 进入你的CMake构建目录 make -j2
内存小于4G的设备可以改用make -j1单线程编译,仅编译时间稍长,不会触发内存溢出问题。
3. 无需手动编译的安装方式
用vcpkg安装
vcpkg是主流的C跨平台包管理工具,Ubuntu 20.04下安装好vcpkg后,只需执行一行命令即可完成TFLite C的安装:
vcpkg install tensorflow-lite:x64-linux
全程自动处理依赖、下载预编译包,无需手动编译源码,安装完成后可以直接在你的C++项目中链接调用。
使用官方预编译包
TensorFlow官方会在版本发布页提供各平台预编译的TFLite C++库包,包含动态库、静态库和头文件,直接下载对应x64 Linux版本的压缩包,解压到系统库目录和头文件目录即可直接使用。
内容的提问来源于stack exchange,提问作者Umer Khan
相关产品推荐
相关产品推荐

