libprotoc编译protoc文件但不包含其他protoc(google grpc assistant annotations.pb.h没有文件或目录错误)

时间:2017-07-08 08:50:31

标签: compiler-errors g++ protocol-buffers google-assistant-sdk protoc

我正在尝试使用C ++生成Google智能助理库。 我使用protoc编译器编译了 embedded_assistant.proto 文件,并获得了 embedded_assistant.grpc.pb.h embedded_assistant.grpc.pb.cc 库的文件。 我创建了一个客户端文件 ea_main.cc 并将这些文件包含在其中。

当我尝试使用g ++编译器编译 ea_main.cc 时,我收到此错误。

car@ubuntu:~/grpc/examples/cpp/embedded_assistant$ g++ -I./ ea_main.cc -o OUT_CPP_TEST -std=c++11
In file included from embedded_assistant.grpc.pb.h:22:0,           
                 from ea_main.cc:9:
embedded_assistant.pb.h:33:39: fatal error: google/api/annotations.pb.h: No such file or directory
compilation terminated.

embedded_assistant.proto 文件中,其中包含另一个原型文件

import "google/api/annotations.proto";
import "google/rpc/status.proto";

似乎protoc没有为这些.proto文件编译或生成标头。在 google / api / 中查看时,他们不在那里。

这就是g ++编译器为缺少的annotations.pb.h文件提供错误的原因。

为什么protoc没有编译 embedded_assistant.proto 中包含的proto ?我怎样才能获得这些文件? 有什么不对吗?

1 个答案:

答案 0 :(得分:1)

我得到了解决方案,即包括其他所需的原型,同时编译如下: -

protoc --proto_path=protos --cpp_out=. protos/embedded_assistant.proto protos/google/api/annotations.proto protos/google/api/http.proto protos/google/rpc/status.proto