【bazel】根据.proto文件生成.h、.cc文件
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                【bazel】根据.proto文件生成.h、.cc文件
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.                        
                                在項(xiàng)目中定義HHHA.proto文件,然后在HHHB.cc或者HHHC.h中直接使用.proto中的定義的“類”——這是可行的。方法是用bazel構(gòu)建項(xiàng)目時(shí)先由HHHA.proto生成中間文件HHHA.pb.cc和HHHA.pb.h。
?
前提:
- ? ? 正確安裝bazel,如果沒(méi)有,請(qǐng)參照這里.
?
【步驟】
目錄結(jié)構(gòu)
├── WORKSPACE └── src├── BUILD└── addressbook.proto其中,src為包名,因?yàn)樗薆UILD文件
WORKSPACE:
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")http_archive(name = "rules_proto",sha256 = "602e7161d9195e50246177e7c55b2f39950a9cf7366f74ed5f22fd45750cd208",strip_prefix = "rules_proto-97d8af4dc474595af3900dd85cb3a29ad28cc313",urls = ["https://mirror.bazel.build/github.com/bazelbuild/rules_proto/archive/97d8af4dc474595af3900dd85cb3a29ad28cc313.tar.gz","https://github.com/bazelbuild/rules_proto/archive/97d8af4dc474595af3900dd85cb3a29ad28cc313.tar.gz",], ) load("@rules_proto//proto:repositories.bzl", "rules_proto_dependencies", "rules_proto_toolchains") rules_proto_dependencies() rules_proto_toolchains()BUILD:
load("@rules_proto//proto:defs.bzl", "proto_library")cc_library(name = "lib",deps = [":foo_cc_proto"], )cc_proto_library(name = "foo_cc_proto",deps = [":foo_proto"], )proto_library(name = "foo_proto",srcs = ["addressbook.proto"], )addressbook.proto:
syntax = "proto2";package tutorial;message Person {required string name = 1;required int32 id = 2;optional string email = 3;enum PhoneType {MOBILE = 0;HOME = 1;WORK = 2;}message PhoneNumber {required string number = 1;optional PhoneType type = 2 [default = HOME];}repeated PhoneNumber phones = 4; }message AddressBook {repeated Person people = 1; }執(zhí)行構(gòu)建:
bazel build src:foo_cc_proto查看目標(biāo)文件:
?
參考:https://docs.bazel.build/versions/master/be/c-cpp.html#cc_proto_library
?
總結(jié)
以上是生活随笔為你收集整理的【bazel】根据.proto文件生成.h、.cc文件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
 
                            
                        - 上一篇: 格力董明珠:对别人狠,对自己更狠!
- 下一篇: My Fifty-First Page
