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