【新】protobuf + VS Code 开发 (一)

这篇文章作为去年写的在电脑上配置 protobuf + VS Code 开发环境的补充。

插件

感谢 无别052 的补充,现在可以去 VS Code 安装这个插件:
添加链接描述

vscode-proto
回看之前的文章,一年多的开发以来,我意识到并非一定要靠某些可视化的行为来完成编译工作。其实proto文件的编译完全可以在命令行完成。因此这个插件更多是进行语法的检查,很遗憾,它做不到。

syntax = "proto3";

message Person {
  string query = 1;
  int32 page_number = 2;
  int32 result_per_page = 3;
  aaa bbb = 4;
}

这部分代码在安装插件以后,也不会报错。然而 CLion 下由 Jetbrains 官方开发的 proto 插件却能报出这一错误。
Clion的报错
不过考虑到我所在的公司也没有像样的工具编写 proto 文件,都是记事本一开了事。其实我也觉得这玩意的语法检查真的无关紧要,VS Code的插件能对关键词着色就已经胜过记事本了。文章的剩余部分继续在 VS Code 操作。

使用命令行编译proto文件

首先,老生常谈,Windows的同学需要将protoc的路径录入环境变量,Linux需要建立软连接(要是直接安装在 /usr/bin 就不用)

使用--cpp_out=命令行参数,Protocol Buffer编译器会生成C++输出。--cpp_out=选项的参数是你要存放C++输出的目录。编译器会为每个.proto文件生成一个头文件和实现文件。输出文件的名称与给定的.proto文件名称有关:

  1. 后缀(.proto)被替换成.pb.h(头文件)或pb.cc(实现文件)。
  2. proto路径(通过--proto_path-I指定)被输出路径(通过--cpp_out指定)替换。

我的person.proto如下:

syntax = "proto3";

message Person {
  string name = 1;
  int32 age = 2;
  int32 sex = 3;
}

比如我就想在这里生成我的.pb.h(头文件)和pb.cc(实现文件)(一般没有这么做的,因为缺很多文件),我可以使用如下命令:

protoc -I . --cpp_out . person.proto

这样就生成了两个文件:
生成的文件
生成的文件缺少很多头文件?这是正常的。我们需要编译protobuf的源代码才能生成这些头文件。下一篇文章我会讲下这个。

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-20 21:22:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-20 21:22:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-04-20 21:22:01       82 阅读
  4. Python语言-面向对象

    2024-04-20 21:22:01       91 阅读

热门阅读

  1. 怎么用3ds MAX制作蜂窝状模型?

    2024-04-20 21:22:01       30 阅读
  2. SiteServer 学习笔记 Day08 内容补充

    2024-04-20 21:22:01       31 阅读
  3. 面了百度自驾算法岗(实习),这次我要上岸了

    2024-04-20 21:22:01       35 阅读
  4. Jmeter redis连接测试

    2024-04-20 21:22:01       37 阅读
  5. Spring+Thymeleaf自定义Formatter

    2024-04-20 21:22:01       37 阅读
  6. 华为海思数字芯片设计笔试第七套

    2024-04-20 21:22:01       33 阅读
  7. 深度学习配置环境AllInOne

    2024-04-20 21:22:01       33 阅读
  8. iframe嵌套页面 拒绝访问 X-Frame-Options配置

    2024-04-20 21:22:01       38 阅读
  9. Birmingham(c++题解)

    2024-04-20 21:22:01       36 阅读