在项目中定义HHHA.proto文件,然后在HHHB.cc或者HHHC.h中直接使用.proto中的定义的“类”——这是可行的。方法是用bazel构建项目时先由HHHA.proto生成中间文件HHHA.pb.cc和HHHA.pb.h。

前提:

  • 正确安装bazel,如果没有,请参照这里.

【步骤】

目录结构

├── WORKSPACE
└── src├── BUILD└── addressbook.proto

其中,src为包名,因为它包含了BUILD文件

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

执行构建:

bazel build src:foo_cc_proto

查看目标文件:

参考:https://docs.bazel.build/versions/master/be/c-cpp.html#cc_proto_library

【bazel】根据.proto文件生成.h、.cc文件相关推荐

  1. gsoap 学习 1-由wsdl文件生成h头文件

    开始前先看一下用户向导吧 http://www.cs.fsu.edu/~engelen/soap.html 中左侧点击Documentation 英语水平确实有限,有些内容可能说的不准确,敬请参考向导 ...

  2. python读xml文件生成.h头文件_PYTHON读写xml文件的方法

    要生成的xml文件格式如下: [python] sample xml thing ma xiaoju Springs Widgets, Inc. First I think widgets are g ...

  3. python读xml文件生成.h头文件_Python创建xml文件示例

    Python创建xml文件示例 这里有新鲜出炉的 Python 入门,程序狗速度看过来! Python 编程语言 Python 是一种面向对象.解释型计算机程序设计语言,由 Guido van Ros ...

  4. 根据 *_train_test.prototxt文件生成 *_deploy.prototxt文件

     根据 *_train_test.prototxt文件生成 *_deploy.prototxt文件 发表于2016/8/6 19:43:11  1218人阅读 本文参考博文 (1)介绍 *_tra ...

  5. 使用C#从图片文件生成图标ICON文件(附源文件)

    使用C#从图片文件生成图标ICON文件(附源文件) 看到网上有一些网站做图标转换工具,挺好的,所以研究了一下在C#中是如何实现的.其实很简单几行代码就可以搞定. 主要是使用System.Drawing ...

  6. 如何快速生成A2L文件(ASAP2 Studio):基于“前一版本A2L文件+最新map文件”生成新map文件对应A2L文件

    目录 一.ASAP2 Studio概述: 二.如何在ASAP2 Studio中利用"前一版本A2L文件+最新map文件"生成新map文件对应A2L文件: 2.1 在ASAP2 St ...

  7. 在Springboot环境下,使用Docx4J + Freemarker 完成word docx文件生成与Pdf文件转换(附带兼容linux字体问题处理办法)

    在Springboot环境下,使用Docx4J + Freemarker 完成word docx文件生成与Pdf文件转换(附带兼容linux字体问题处理办法) 前言 效果展示 正文 docx文件模板创 ...

  8. hpp头文件和h头文件

    详解:C++ hpp头文件与h头文件-C++ hpp文件-嗨客网 个人见解: hpp只是为了让人知道这个文件声明和定义都在同一个文件,仅此而已.至于上面文章说的增加cpp和编译次数 1.完全可以用.h ...

  9. Android JNI开发生成.h头文件问题(转)

    在JNI开发中,首先要将建立的anroid类编译成.h文件,编译用到命令javah,由于第一次用,以前对java的编译过程也不怎么了解,所以走了好多弯路,网络没有对这一步的详细介绍,这里讲一下: 通过 ...

  10. java生成.h头文件_javah头文件生成器

    javah头文件生成器 javah程序创建C头文件和存根文件,这些是把本地C成员函数包入java 所需要的.被创建的头文件给出了有关java类的信息,这些信息是C成员函数与java类交换数据所必需的. ...

最新文章

  1. Mastering Algorithms with C中文版附带源码说明
  2. MySQL数据库入门———常用基础命令
  3. 7_26 day28 上节课 复习 27min
  4. 关于WIN10显示“未安装任何音频输出设备” 英特尔(R)智音系统OED启动错误(代号10)解决办法
  5. Typora下载与安装
  6. 钉钉如何群里定时发送文件_简单好用的钉钉群消息助手
  7. 由南非世界杯想到IDC
  8. Solidity函数vie和pure关键字
  9. arm9开发板学习笔记之程序烧录
  10. Android帧动画分析
  11. 注册表方法删除WINDOWS右键多余扩展项
  12. 【转】阿里云主机购买使用教程
  13. 从纯洁男孩到堕落男人
  14. 从子窗口中获取父窗口的句柄例子
  15. 塔望食品品牌策划:中国鳗鱼行业市场现状及发展趋势分析
  16. 消费升级背景下零食行业发展报告_三只松鼠IPO闯关成功“零食第一股”能否守住食品安全底线...
  17. Criteria用法的小结
  18. 【DD应用系统源码】软件库源码
  19. C语言:由大到小排序
  20. 【强烈推荐】十三个鲜为人知的大数据学习网站

热门文章

  1. 浅谈“异常信息泄露(应用程序错误)”
  2. reg类型变量综合电路_Verilog中 reg和wire 用法和区别以及always和assign的区别
  3. 转载 提高github下载速度的方法【100%有效】可达到2MB/s
  4. 小黄鸡 php,Simsimi (小黄鸡) API接口(PHP)公布,小黄鸡API接口非官方PHP版本来啦...
  5. 嵌入式系统测试教学实训平台系统情况
  6. Android 9.0 http无法访问网络问题
  7. 安装 emoji 字体
  8. 传统蓝牙BR/EDR的搜索Inquiry
  9. SringBoot实现PDF签字盖章
  10. 云计算服务包括哪三种服务?怎么定义?