MacM1(ARM)安裝Protocol Buffers

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
    

將這個包放入自定義文件夾,設置環境變量即可

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/166863.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/166863.shtml
英文地址,請注明出處:http://en.pswp.cn/news/166863.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

大表查詢如何優化?

大表查詢的優化方法有以下幾種&#xff1a; 索引優化&#xff1a;通過建立合理高效的索引&#xff0c;提高查詢的速度。SQL優化&#xff1a;組織優化SQL語句&#xff0c;使查詢效率達到最優&#xff0c;在很多情況下要考慮索引的作用。水平拆表&#xff1a;如果表中的數據呈現…

curl添加https服務

CURL支持的通信協議有FTP、FTPS、HTTP、HTTPS、TFTP、SFTP、Gopher、SCP、Telnet、DICT、FILE、LDAP、LDAPS、IMAP、POP3、SMTP和RTSP。 首選刪除系統自帶的openssl&#xff0c;因為他只有可執行程序和庫&#xff0c;沒有頭文件。 sudo apt-get remove openssl openssl官網&am…

CentOS7磁盤掛載

1 引言 本文主要講述CentOS7磁盤掛載相關知識點和操作。 2 磁盤掛載 步驟1&#xff1a; 查看機器所掛硬盤及分區情況 fdisk -l查詢結果&#xff1a; 由上圖可以看到該結果包含&#xff1a;硬盤名稱、硬盤大小等信息。 屬性解釋說明Disk /dev/vda硬盤名稱53.7G磁盤大…

6S精益管理必備裝備降低物料損耗

在工廠生產環境中&#xff0c;設備管理是確保生產效率和質量的關鍵因素之一。6S管理方法是一種源自日本的管理體系&#xff0c;旨在通過整頓、整理、清掃、清潔、素養、遵守六個步驟&#xff0c;實現工作環境的優化和管理的高效。 倉庫管理中&#xff0c;庫存損耗一直是企業面…

分布式篇---第四篇

系列文章目錄 文章目錄 系列文章目錄前言一、分布式ID生成有幾種方案?二、冪等解決方法有哪些?三、常見負載均衡算法有哪些?前言 前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到網站,這篇文章男女通用,看懂了就去分享給…

多回路交流三相單相電壓電流電量監測開口式互感器適用多種環境用電能耗監控

1 產品概述 多回路交流無線電壓電流傳感器/電量采集監測儀搭配多路開口式互感器&#xff0c;可以監控采集三相電壓、電流、功率和電量等信息&#xff0c;可用于能耗采集監控。支持RS485和4G網絡接口&#xff0c;數據可以對接客戶指定的第三方云平臺。本產品可實現單相/三相用電…

Spring事務的實現方式和實現原理;事務聲明的方式,Spring的事務傳播行為,spring事務的實現原理

Spring事務的實現方式和實現原理 Spring事務的本質其實就是數據庫對事務的支持&#xff0c;沒有數據庫的事務支持&#xff0c;spring是無法提供事務功能的。真正的數據庫層的事務提交和回滾是通過binlog或者redo log實現的。 什么是事務 數據庫事務是指作為單個邏輯工作單元執…

發布本地(sap hana)Jar包到Maven私有倉庫

在控制臺執行如下命令&#xff1a; mvn deploy:deploy-file -DgroupId"com.sap.cloud.db.jdbc" -DartifactId"ngdbc" -Dversion"2.0.13" -Dpackaging"jar" -Dfile"F:\sap_ngdbc\ngdbc-2.0.13.jar" -DrepositoryId"rel…

Co-DETR:DETRs與協同混分配訓練論文學習筆記

論文地址&#xff1a;https://arxiv.org/pdf/2211.12860.pdf 代碼地址&#xff1a; GitHub - Sense-X/Co-DETR: [ICCV 2023] DETRs with Collaborative Hybrid Assignments Training 摘要 作者提出了一種新的協同混合任務訓練方案&#xff0c;即Co-DETR&#xff0c;以從多種標…

網站會遭受那些攻擊,要怎么應對

隨著互聯網的普及和發展&#xff0c;很多企業或個人都建立了自己的網站&#xff0c;這些網站不僅可以展示企業或個人的信息&#xff0c;還可以提供各種服務和交流平臺。但是&#xff0c;在運營網站的過程中&#xff0c;很多人都會遇到網站被流量攻擊的情況&#xff0c;這種情況…

gmapping仿真

文章目錄 獲取源碼安裝依賴項編譯簡單場景運行gmapping開啟鍵盤控制通過launch文件來啟動gmappingGmapping建圖的參數設置地圖的保存和加載參考 獲取源碼 cd ~/catkin_ws/src/ git clone https://gitcode.com/weixin_42990464/wpr_simulation.git git clone https://gitcode.c…

【開源】基于Vue.js的農村物流配送系統的設計和實現

項目編號&#xff1a; S 024 &#xff0c;文末獲取源碼。 \color{red}{項目編號&#xff1a;S024&#xff0c;文末獲取源碼。} 項目編號&#xff1a;S024&#xff0c;文末獲取源碼。 目錄 一、摘要1.1 項目介紹1.2 項目錄屏 二、功能模塊2.1 系統登錄、注冊界面2.2 系統功能2.2…

java使用poi框架導出excel文件名命名為中文的方法

最近使用poi框架實現自動化報表導入導出功能&#xff0c;但是遇到一個問題&#xff0c;導出的表格命名為中文時不被識別&#xff0c;直接會以接口名為文件名導出&#xff0c;那么如何解決這個問題呢&#xff1f; 三行代碼解決&#xff1a; String fileName "xxxx統計表-…

小程序:用戶查找英語單詞的意思 ← Python字典

【程序分析】 ● 字典中的條目是沒有順序的。 ● 可以對字典使用如下方法&#xff1a; keys()、values()、 items()、 clear()、 get(key)、 pop(key) 和popitem()【程序代碼】 dictionary{"dog":"狗","apple":"蘋果","banana&q…

Java字節碼指令集概述及分類詳解

Java全能學習面試指南&#xff1a;https://javaxiaobear.cn 1、字節碼指令集與解析概述 Java字節碼對于虛擬機&#xff0c;就好像匯編語言對于計算機&#xff0c;屬于基本執行指令。 Java 虛擬機的指令由一個字節長度的、代表著某種特定操作含義的數字&#xff08;稱為操作碼&a…

醫院供暖換熱站遠程監控案例

醫院供暖換熱站遠程監控案例 本文針對醫院換熱站遠程監控系統存在的問題&#xff0c;提出了一種基于物聯網技術的解決方案。通過使用云平臺功能&#xff0c;實現對換熱站設備的遠程監控和管理&#xff0c;提高系統運行效率&#xff0c;降低運維成本。 一&#xff0e;痛點 1、…

C語言——深入理解指針(1)

目錄 1.內存與地址 1.1 什么是內存 1.2 編址 2. 指針的變量和地址 2.1 取地址&#xff08;&&#xff09; 2.2 指針變量 2.3 解引用 2.4 指針變量大小 3. 指針變量類型存在的意義 3.1 不同類型指針的解引用 3.2 指針對整數的運算&#xff08;&#xff0c;-&#…

(10)ATF MMU轉換表

MMU簡介 MMU&#xff08;內存管理單元&#xff09;負責將軟件使用的虛擬地址轉換為內存系統中使用的物理地址。MMU包括兩個模塊&#xff1a;TLB&#xff08;Translation Lookaside Buffer&#xff09;和TWU&#xff08;Table Walk Unit&#xff09;。TLB緩存最近使用的轉換&am…

Spring Beans;Spring Bean的生命周期;spring Bean的作用域,spring處理線程并發問題

文章目錄 Spring Beans請解釋Spring Bean的生命周期解釋Spring支持的幾種bean的作用域Spring容器中的bean可以分為5個范圍&#xff1a; Spring如何處理線程并發問題&#xff1f; 在現在的項目開發中經常使用到spring bean&#xff0c;那么來談談spring bean的生命周期&#xff…

APP軟件線上排查方法

在線上環境中排查APP軟件的問題是一項關鍵任務&#xff0c;需要使用一系列方法和工具來識別、定位和解決問題。以下是一些建議的排查方法&#xff0c;希望對大家有所幫助。北京木奇移動技術有限公司&#xff0c;專業的軟件外包開發公司&#xff0c;歡迎交流合作。 1.監控和日志…