Debian11下TensorFlow Lite编译未定义引用及CMake构建问题
构建TensorFlow Lite时的链接错误与CMake问题
问题现象
在Debian 11(Intel芯片)机器上构建TensorFlow Lite项目时,出现函数未定义引用的链接错误:
- 仅使用
FlatBufferModel相关代码时可正常编译运行 - 添加
BuiltinOpResolver和InterpreterBuilder相关代码后,执行make触发链接错误 - 尝试过ARM架构下的解决方案,但因本机为Intel芯片,执行后出现未知错误
测试代码
// 可正常运行的代码 std::unique_ptr<tflite::FlatBufferModel> model = tflite::FlatBufferModel::BuildFromFile(filename); TFLITE_MINIMAL_CHECK(model != nullptr); // 出现未定义引用的代码: tflite::ops::builtin::BuiltinOpResolver resolver; std::unique_ptr<tflite::Interpreter> interpreter; tflite::InterpreterBuilder(*model, resolver)(&interpreter);
TensorFlow Lite搭建步骤
- 从GitHub获取TensorFlow源码
- 安装bazel 3.7.2
- 执行
configure.py并采用默认配置 - 编译生成
libtensorflowlite.so - 移动库文件后,使用指定CMake配置构建,执行
make时报错
更新后的问题
移除官方构建指令中的-J标志后,可正常完成构建,但使用官方CMake示例时遇到新问题:
- 执行
cmake .后终端卡住,中断操作后重新执行,出现"源码内构建禁止"的错误
疑问
- 提示的CMake缓存是指项目目录下的还是TensorFlow构建目录下的?
- 是否遗漏了关键步骤?
内容的提问来源于stack exchange,提问作者Turgut
相关产品推荐
相关产品推荐

