Google 语音识别(cpp 样本):未定义对 AssignDescriptors() 的引用

Google Speech recognition (cpp samples): undefined reference to AssignDescriptors()

这似乎是一个 protobuf linking 错误。我正在描述到达此处所遵循的步骤。

注意:后面的link是安装protocol buffer编译器和gRPC。如果你已经有一个 运行ning gRPC 系统那么你可以跳过它

注意:link后面是获取和运行Google为语音识别应用提供的示例代码。

在第 9 步 - make run_tests,我收到此错误

g++ transcribe.o parse_arguments.o googleapis.ar -L/usr/local/lib `pkg-config --libs grpc++ grpc` -Wl,--no-as-needed -lgrpc++_reflection -Wl,--as-needed -lprotobuf -lpthread -ldl -o transcribe

/usr/local/lib/libgrpc++_reflection.so: undefined reference to `google::protobuf::internal::AssignDescriptors(google::protobuf::internal::AssignDescriptorsTable*)'

/usr/local/lib/libgrpc++_reflection.so: undefined reference to `google::protobuf::internal::AddDescriptors(google::protobuf::internal::DescriptorTable*, void (* const*)(), int)'

collect2: error: ld returned 1 exit status
  1. 我无法检查 AssignDescriptorsAddDescriptors 是否正确声明和定义。 在哪里可以找到声明的这些函数?

  2. 有没有flag或者link我漏补了?

任何积极的帮助将不胜感激。谢谢

我观察到grpc++ version 1.19不支持protobuf-c version 15.

为了完成这项工作,我将符号链接指针从 libprotobuf-c.so.15 更改为 libprotobuf-c.so.17