protoc 安装及配置


使用brew安装carthage时碰到报错

Error: Permission denied @ dir_s_mkdir - /usr/local/Frameworks

不论安装的插件是什么,解决方法如下:

sudo mkdir /usr/local/Frameworks
sudo chown $(whoami):admin /usr/local/Frameworks

 

sudo chown -R `whoami` /usr/local

 

ProtoBuf编译器google-protobuf

https://github.com/protocolbuffers/protobuf/releases

定义.proto文件

 

 
syntax = "proto3";

package ns;

message User{
  string Name = 1;
  int32 Age = 3;
}

protoc编译命令

$ protoc
用法: protoc [OPTION] PROTO_FILES
解析proto文件并根据给定的选项生成输出:
  -IPATH, --proto_path=PATH   指定搜索目录,可多次指定,默认为当前工作目录。
  --version                   显示版本信息并退出
  -h, --help                  显示帮助文档并退出
  --encode=MESSAGE_TYPE       从标准输入读取给定类型的文本格式消息,从标准输出写入二进制文件。消息类型必须在原始文件或导入中定义。
  --decode=MESSAGE_TYPE       从标准输入中读取给定类型的二进制消息,向标准输出中写入文本格式。消息类型必须定义在proto文件或其导入的文件中。
  --decode_raw                从标准输入读取任意协议消息,向标准输出写入原始标记或文本格式的值。
  --descriptor_set_in=FILES   指定文件分隔符列表,每个都包含了一个文件描述符集合。
  -oFILE,                     写入FileDescriptorSet
  --include_imports           当使用--descriptor_set_out时, 同时包含输入文件的依赖项
  --include_source_info       当使用--descriptor_set_out时无需剥离FileDescriptorProto中的SourceCodeInfo
  --dependency_out=FILE       指定依赖输出文件
  --error_format=FORMAT       设置打印错误格式,默认gcc,可选msvs。
  --print_free_field_numbers  打印给定proto文件中消息定义的可用字段号
  --plugin=EXECUTABLE         指定使用插件的可执行文件
  --cpp_out=OUT_DIR           产生C++头文件和源文件
  --csharp_out=OUT_DIR        产生C#源文件
  --java_out=OUT_DIR          产生Java源文件
  --javanano_out=OUT_DIR      产生Java Nano源文件
  --js_out=OUT_DIR            产生JavaScript源文件
  --objc_out=OUT_DIR          产生Objective C头文件和源文件
  --php_out=OUT_DIR           产生PHP源文件
  --python_out=OUT_DIR        产生Python源文件
  --ruby_out=OUT_DIR          产生Ruby源文件
  @<filename>                 从文件中读取选项和文件名

mac上安装

brew install protobuf #只能安装最新的几个版本 protoc --version

如果需要安装2.4.1比较老的版本
https://github.com/protocolbuffers/protobuf/releases/tag/v2.4.1
下载之后
进入protobuf-2.4.1文件夹
./configure
接着
make
make check
make install
执行完之后查看是否安装成功
protoc --version

 

<第一步>安装brew
homebrew是mac下用来代替apt-get命令的,主要用于自动从互联网的软件仓库中搜索、安装、升级、卸载软件或操作系统。安装protobuf时缺少automake以及libtool,需要brew命令进行安装。

打开Mac终端执行下面命令。即可安装(也可自行百度Mac下如何安装brew)

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

执行安装完成后可以执行以下命令查看安装是否成功

brew --version

接下来安装Protobuf Compiler,执行一下几个命令即可:

  Automake 是一种帮助『自动』产生 Makefile 文件的软件,并且让开发出来的的软件可以象 Apache,MySQL 和常见的 GNU 软件一样,程序设计者只需要写一些预先定义好的宏 (macro),提交给Automake处理后会产生一个可以供 Autoconf 使用的 Makefile.in文件。再配合利用 Autoconf产生的自动配置设置文件 configure 即可产生一份符合 GNU Makefile 惯例的 Makeifle 了.

  libtool是一种属于GNU建构系统的GNU程序设计工具,用来产生便携式的库;

brew install automake

brew install libtool

brew install protobuf

<第二步>安装完成后可以再自己电脑进入一个指定的目录中执行以下命令
git clone https://github.com/google/protobuf.git

拉取到本地成功后进入到protobuf文件夹目录中执行

./autogen.sh

<第三步>安装Protobuf,分别执行以下命令<这是一个需要时间的过程,耐心等待一下知道安装完成>
./configure

make check

make

make install

所有操作完成后可以执行 protoc --version 命令检测是否真正安装成功

lizhideiMac:~ yinghui$ protoc --version
libprotoc 3.17.3

导出pb文件

 protoc --proto_path=/Users/yinghui/Desktop/Work/SlotSlg/ProjectProj1/Proto --descriptor_set_out=/Users/yinghui/Desktop/Work/SlotSlg/ProjectProj1/Assets/UsrAssets/Src/Basic/Model/Proto/GD_Url.pb.txt /Users/yinghui/Desktop/Work/SlotSlg/ProjectProj1/Proto/cmd/*.proto /Users/yinghui/Desktop/Work/SlotSlg/ProjectProj1/Proto/common/*.proto /Users/yinghui/Desktop/Work/SlotSlg/ProjectProj1/Proto/*.proto

 

 

 

如果报错/bin/bash: command not found

which protoc

找到路径后 在usr/local/bin中软连接protoc到此文件夹


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM