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