我正在尝试使用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 ?我怎样才能获得这些文件? 有什么不对吗?
答案 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