首页 文章

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

提问于
浏览
2

我想在C中生成Google Assistant库 . 我使用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 回答

  • 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
    

相关问题