libprotoc компилирует файлы протоколов, но не другие протоколы, включенные в него (google grpc assistant annotations.pb.h нет ошибки файла или каталога)

Я пытаюсь создать библиотеку Google Assistant на C ++. Я скомпилировал файл embedded_assistant.proto с помощью компилятора protoc и получил embedded_assistant.grpc.pb.h и embedded_assistant.grpc.pb.cc файлы для библиотеки. Я создал клиентский файл ea_main.cc и включил в него эти файлы.

Когда я пытаюсь скомпилировать ea_main.cc с помощью компилятора g ++, я получаю эту ошибку.

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";

Похоже, что протокол не скомпилировал и не сгенерировал заголовки для этих файлов .proto. Если посмотреть в google / api /, их там нет.

Вот почему компилятор g ++ выдает ошибки для отсутствующего файла annotations.pb.h.

Почему протокол не скомпилировал протокол, включенный в embedded_assistant.proto? Как я могу получить эти файлы ?? Что-то не так?


person alihaqnawaz.965    schedule 08.07.2017    source источник


Ответы (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
person alihaqnawaz.965    schedule 09.07.2017