【bazel】根据.proto文件生成.h、.cc文件
在项目中定义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文件相关推荐
- gsoap 学习 1-由wsdl文件生成h头文件
开始前先看一下用户向导吧 http://www.cs.fsu.edu/~engelen/soap.html 中左侧点击Documentation 英语水平确实有限,有些内容可能说的不准确,敬请参考向导 ...
- python读xml文件生成.h头文件_PYTHON读写xml文件的方法
要生成的xml文件格式如下: [python] sample xml thing ma xiaoju Springs Widgets, Inc. First I think widgets are g ...
- python读xml文件生成.h头文件_Python创建xml文件示例
Python创建xml文件示例 这里有新鲜出炉的 Python 入门,程序狗速度看过来! Python 编程语言 Python 是一种面向对象.解释型计算机程序设计语言,由 Guido van Ros ...
- 根据 *_train_test.prototxt文件生成 *_deploy.prototxt文件
根据 *_train_test.prototxt文件生成 *_deploy.prototxt文件 发表于2016/8/6 19:43:11 1218人阅读 本文参考博文 (1)介绍 *_tra ...
- 使用C#从图片文件生成图标ICON文件(附源文件)
使用C#从图片文件生成图标ICON文件(附源文件) 看到网上有一些网站做图标转换工具,挺好的,所以研究了一下在C#中是如何实现的.其实很简单几行代码就可以搞定. 主要是使用System.Drawing ...
- 如何快速生成A2L文件(ASAP2 Studio):基于“前一版本A2L文件+最新map文件”生成新map文件对应A2L文件
目录 一.ASAP2 Studio概述: 二.如何在ASAP2 Studio中利用"前一版本A2L文件+最新map文件"生成新map文件对应A2L文件: 2.1 在ASAP2 St ...
- 在Springboot环境下,使用Docx4J + Freemarker 完成word docx文件生成与Pdf文件转换(附带兼容linux字体问题处理办法)
在Springboot环境下,使用Docx4J + Freemarker 完成word docx文件生成与Pdf文件转换(附带兼容linux字体问题处理办法) 前言 效果展示 正文 docx文件模板创 ...
- hpp头文件和h头文件
详解:C++ hpp头文件与h头文件-C++ hpp文件-嗨客网 个人见解: hpp只是为了让人知道这个文件声明和定义都在同一个文件,仅此而已.至于上面文章说的增加cpp和编译次数 1.完全可以用.h ...
- Android JNI开发生成.h头文件问题(转)
在JNI开发中,首先要将建立的anroid类编译成.h文件,编译用到命令javah,由于第一次用,以前对java的编译过程也不怎么了解,所以走了好多弯路,网络没有对这一步的详细介绍,这里讲一下: 通过 ...
- java生成.h头文件_javah头文件生成器
javah头文件生成器 javah程序创建C头文件和存根文件,这些是把本地C成员函数包入java 所需要的.被创建的头文件给出了有关java类的信息,这些信息是C成员函数与java类交换数据所必需的. ...
最新文章
- Mastering Algorithms with C中文版附带源码说明
- MySQL数据库入门———常用基础命令
- 7_26 day28 上节课 复习 27min
- 关于WIN10显示“未安装任何音频输出设备” 英特尔(R)智音系统OED启动错误(代号10)解决办法
- Typora下载与安装
- 钉钉如何群里定时发送文件_简单好用的钉钉群消息助手
- 由南非世界杯想到IDC
- Solidity函数vie和pure关键字
- arm9开发板学习笔记之程序烧录
- Android帧动画分析
- 注册表方法删除WINDOWS右键多余扩展项
- 【转】阿里云主机购买使用教程
- 从纯洁男孩到堕落男人
- 从子窗口中获取父窗口的句柄例子
- 塔望食品品牌策划:中国鳗鱼行业市场现状及发展趋势分析
- 消费升级背景下零食行业发展报告_三只松鼠IPO闯关成功“零食第一股”能否守住食品安全底线...
- Criteria用法的小结
- 【DD应用系统源码】软件库源码
- C语言:由大到小排序
- 【强烈推荐】十三个鲜为人知的大数据学习网站
热门文章
- 浅谈“异常信息泄露(应用程序错误)”
- reg类型变量综合电路_Verilog中 reg和wire 用法和区别以及always和assign的区别
- 转载 提高github下载速度的方法【100%有效】可达到2MB/s
- 小黄鸡 php,Simsimi (小黄鸡) API接口(PHP)公布,小黄鸡API接口非官方PHP版本来啦...
- 嵌入式系统测试教学实训平台系统情况
- Android 9.0 http无法访问网络问题
- 安装 emoji 字体
- 传统蓝牙BR/EDR的搜索Inquiry
- SringBoot实现PDF签字盖章
- 云计算服务包括哪三种服务?怎么定义?