使用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到此文件夹