grpc Google Assistant SDK의 새 v1alpha2를 컴파일하려고했습니다.Google Assistant SDK가 api/auth.pb.cc에서 컴파일 오류를 캐스팅 할 수 없습니다.
구글 도우미 저장소에서 make (cpp 언어 출력)를 실행했는데 내 *.pb.cc
및 *.ob.h
개의 파일이 생성되었습니다. 그런 다음 /google/api
, /google/type
*.pb.cc
개의 파일을 .o
개의 파일로 컴파일하려고했는데 기본 프로젝트에 연결할 수 있습니다. (embedded_assistant.proto
에는 두 가지 가져 오기 명령문이 있습니다 : import "google/api/annotations.proto"; import "google/type/latlng.proto";
).
또한 /google/protobuf
및 /google/rpc
으로 컴파일하려고했습니다.
그것은 makefile
에 의해 자동화하고, 나는 다음과 같은 오류를 얻을이 명령에서 : 어떤 도움
make generated command:
g++ -c -I/usr/local/include -pthread -I./googleapis/gens -I./grpc -std=c++11 googleapis/gens/google/api/auth.pb.cc -o googleapis/gens/google/api/auth.pb.o
output:
googleapis/gens/google/api/auth.pb.cc:552:23: error: cannot cast '::google::protobuf::RepeatedPtrField< ::google::api::AuthenticationRule>' to its private base class
'google::protobuf::internal::RepeatedPtrFieldBase'
rules_.InternalSwap(&other->rules_);
^
/usr/local/include/google/protobuf/repeated_field.h:776:41: note: declared private here
class RepeatedPtrField PROTOBUF_FINAL : private internal::RepeatedPtrFieldBase {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
googleapis/gens/google/api/auth.pb.cc:553:27: error: cannot cast '::google::protobuf::RepeatedPtrField< ::google::api::AuthProvider>' to its private base class
'google::protobuf::internal::RepeatedPtrFieldBase'
providers_.InternalSwap(&other->providers_);
^
/usr/local/include/google/protobuf/repeated_field.h:776:41: note: declared private here
class RepeatedPtrField PROTOBUF_FINAL : private internal::RepeatedPtrFieldBase {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
googleapis/gens/google/api/auth.pb.cc:936:30: error: cannot cast '::google::protobuf::RepeatedPtrField< ::google::api::AuthRequirement>' to its private base class
'google::protobuf::internal::RepeatedPtrFieldBase'
requirements_.InternalSwap(&other->requirements_);
^
/usr/local/include/google/protobuf/repeated_field.h:776:41: note: declared private here
class RepeatedPtrField PROTOBUF_FINAL : private internal::RepeatedPtrFieldBase {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3 errors generated.
make: *** [googleapis/gens/google/api/auth.pb.o] Error 1
덕분에 지금, completly 새로운 멋진 휴가를 당신에게 그것을
나는 이것을 쳤다. gRPC와 protobufs를 혼합하여 발생합니다. 항상 빌드중인 gRPC 브랜치가 참조하는 동일한 버전의 protobufs를 사용하십시오. – fionbio