MacM1(ARM)安裝Protocol Buffers
本文目錄
- MacM1(ARM)安裝Protocol Buffers
- 3.21之前版本安裝使用configure
- 3.22之后版本安裝使用cmake
- 使用編譯后的版本
protobuf下載地址:https://github.com/protocolbuffers/protobuf/releases
在運行./autogen.sh
或./configure
命令時出現"No such file or directory"
錯誤,是因為protobuf版本或構建方式的問題
3.21之前版本安裝使用configure
如果沒有configure
需要先運行./autogen.sh
生成
-
配置
./configure // ./configure --prefix=/Users/xxx/protobuf(prefix 為安裝目錄,可自定義)
-
編譯和安裝
make
sudo make install
-
驗證安裝
protoc --version libprotoc 3.21.12
-
安裝位置
which protoc /usr/local/bin/protoc
-
配置環境變量
vim ~/.zshrcexport PROTOBUF=/usr/local/bin/protoc export PATH=$PROTOBUF/bin:$PATHsource ~/.zshrc
3.22之后版本安裝使用cmake
-
運行CMake配置
cmake .
-
報錯,缺少
Abseil
庫CMake Error at third_party/utf8_range/CMakeLists.txt:31 (add_subdirectory):The source directory/xxx/protobuf-25.0/third_party/abseil-cppdoes not contain a CMakeLists.txt file.
https://github.com/protocolbuffers/protobuf/issues/12016
查看官方解釋:cmake/README.md,需要下載
Abseil
-
abseil-cpp下載
官方github:https://github.com/abseil/abseil-cpp/releases
單獨安裝:https://abseil.io/docs/cpp/quickstart-cmake#getting-the-abseil-code -
將abseil-cpp內容放入
/third_party/abseil-cpp/
目錄下即可,不需要單獨安裝
-
在源碼路徑下開始編譯
cmake . -DCMAKE_CXX_STANDARD=14// -Dprotobuf_BUILD_TESTS=OFF //配置CMake以跳過測試構建
cmake --build .
可以看到當前目錄下已經可以查看編譯完的protoc的版本了
-
安裝
sudo make install
-
查看安裝位置和全局版本
which protocprotoc --version
使用編譯后的版本
不需要編譯,直接使用,參考:https://grpc.io/docs/protoc-installation/
-
選擇對應平臺下載
protoc-<version>-<os>-<arch>.zip
-
解壓
-
命令行查看
cd /Users/xx/protoc-25.0-osx-aarch_64/bin./protoc --version libprotoc 25.0
將這個包放入自定義文件夾,設置環境變量即可