【问题标题】:Tensorflow c++ api undefined reference to `tflite::DefaultErrorReporter()'Tensorflow c++ api未定义引用`tflite::DefaultErrorReporter()'
【发布时间】:2020-02-11 06:54:22
【问题描述】:

我在 Ubuntu 16.04 上使用静态构建成功构建了 tensorflow_cc。

我正在测试我从 tflite 指南中获取的一个小代码:

  $> cat test1.cpp

  #include <cstdio>
  #include "tensorflow/lite/interpreter.h"
  #include "tensorflow/lite/kernels/register.h"
  #include "tensorflow/lite/model.h"

  using namespace tflite;

  int main(int argc, char* argv[]) {
  if (argc != 2) {
  fprintf(stderr, "minimal \n");
  return 1;
  }
  const char* filename = argv[1];

  std::unique_ptrtflite::FlatBufferModel model =
  tflite::FlatBufferModel::BuildFromFile(filename);
  return 0;
  }

我收到此错误:

  [ 50%] Building CXX object CMakeFiles/example.dir/example.cpp.o
  [100%] Linking CXX executable example
  CMakeFiles/example.dir/example.cpp.o: In function main': example.cpp:(.text+0x57):                               
  undefined reference to tflite::DefaultErrorReporter()'
  example.cpp:(.text+0x6d): undefined reference to                               
  tflite::FlatBufferModel::BuildFromFile(char const*, tflite::ErrorReporter*)'             
  CMakeFiles/example.dir/example.cpp.o: In function 
  std::default_deletetflite::FlatBufferModel::operator()(tflite::FlatBufferModel*) const':
  example.cpp 
  (.text.ZNKSt14default_deleteIN6tflite15Flat 
  BufferModelEEclEPS1[ZNKSt14default_deleteIN6tflite15FlatBufferModelEEclEPS1]+0x1e): 
  undefined reference to `tflite::FlatBufferModel::~FlatBufferModel()'
  collect2: error: ld returned 1 exit status
  CMakeFiles/example.dir/build.make:85: recipe for target 'example' failed
  make[2]: *** [example] Error 1
  CMakeFiles/Makefile2:72: recipe for target 'CMakeFiles/example.dir/all' failed
  make[1]: *** [CMakeFiles/example.dir/all] Error 2
  Makefile:83: recipe for target 'all' failed
  make: *** [all] Error 2

对如何进行有什么建议吗?

【问题讨论】:

    标签: c++ api linker-errors tensorflow-lite


    【解决方案1】:

    已在https://github.com/tensorflow/tensorflow/issues/36661 上回复 由于某些奇怪的原因,您需要先向链接器提供目标文件而不是 tflite 库。

    仅供参考https://eli.thegreenplace.net/2013/07/09/library-order-in-static-linking

    【讨论】:

    • 只是来这里提到 git-hub 链接。非常感谢您的帮助。
    猜你喜欢
    • 2022-06-17
    • 2020-10-15
    • 1970-01-01
    • 2013-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多