在ubuntu中brpc框架安裝


下載最新release版本, 穩定性好, 網址鏈接。

一、解壓源碼包

# 解壓到當前目錄
tar -xzvf brpc-1.12.1.tar.gz# 進入解壓后的目錄
cd brpc-1.12.1

二、安裝編譯依賴(Ubuntu/Debian)

sudo apt update
sudo apt install -y g++ make cmake libssl-dev libgflags-dev libprotobuf-dev protobuf-compiler

三、編譯 BRPC

1. 創建構建目錄
mkdir build && cd build
2. 配置 CMake
cmake .. \-DCMAKE_INSTALL_PREFIX=/usr/local \-DBUILD_SHARED_LIBS=ON \-DWITH_DEBUG_SYMBOLS=OFF \-DCMAKE_POLICY_VERSION_MINIMUM=3.5
3. 編譯并安裝
make -j$(nproc)        # 多線程編譯
sudo make install      # 安裝到系統目錄
sudo ldconfig          # 更新庫緩存

四、驗證安裝是否成功

1. 檢查關鍵文件
# 檢查頭文件
ls /usr/local/include/brpc/*.h# 檢查庫文件
ls /usr/local/lib/libbrpc.so# 檢查 CMake 配置
ls /usr/local/lib/cmake/BRPC/BRPCConfig.cmake
2. 運行測試示例
# 進入示例目錄
cd ../example/echo_c++# 編譯并運行服務端
make
./echo_server# 另開終端運行客戶端
./echo_client

輸出應為:

Received: Hello BRPC!

五、集成到你的項目(示例)

1. 創建測試文件 test_brpc.cpp
#include <brpc/server.h>
#include <iostream>int main() {brpc::Server server;if (server.Start(8000, nullptr) == 0) {std::cout << "BRPC server started successfully!" << std::endl;server.RunUntilAskedToQuit();} else {std::cerr << "Failed to start BRPC server" << std::endl;return -1;}return 0;
}
2. 創建 CMakeLists.txt
cmake_minimum_required(VERSION 3.10)
project(test_brpc)find_package(BRPC REQUIRED)
find_package(Protobuf REQUIRED)add_executable(test_brpc test_brpc.cpp)
target_link_libraries(test_brpc ${BRPC_LIB} pthread)
3. 編譯并運行
mkdir build && cd build
cmake .. && make
./test_brpc  # 應輸出 "BRPC server started successfully!"

六、常見問題解決

1. 編譯時報錯找不到頭文件
# 確保安裝路徑正確
sudo rm -rf /usr/local/include/brpc /usr/local/lib/libbrpc*
cd brpc-1.12.1/build
sudo make install
sudo ldconfig
2. 運行時提示 libbrpc.so 未找到
# 臨時生效
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH# 永久生效
echo "export LD_LIBRARY_PATH=/usr/local/lib:\$LD_LIBRARY_PATH" >> ~/.bashrc
source ~/.bashrc
3. 測試示例失敗

檢查服務端和客戶端是否使用相同協議:

// 服務端和客戶端需一致
brpc::ChannelOptions options;
options.protocol = brpc::PROTOCOL_BAIDU_STD;  // 默認協議

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

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

相關文章

《深入理解 Java 虛擬機》筆記

文章目錄 最近筆記內存管理執行子系統程序編譯、代碼優化 老版本 最近筆記 內存管理 執行子系統 程序編譯、代碼優化 老版本

【Linuc】深入理解 Linux 文件權限

文章目錄 一、權限基礎解析1. 權限三元組2. 權限類型與數字映射二、查看文件權限三、修改權限實戰1. chmod 命令符號模式數字模式(推薦)2. chown 修改歸屬四、特殊權限機制1. SetUID (Set User ID)2. SetGID (Set Group ID)3. Sticky Bit五、高級權限管理1. 默認權限控制2. A…

RabbitMq學習(第一天)

文章目錄 1、mq(消息隊列)概述2、RabbitMQ環境搭建3、java基于AMQP協議操作RabbitMQ4、基于Spring AMQP操作RabbitMQ5、代碼中創建隊列與交換機①、配置類創建②、基于RabbitListener注解創建 6、RabbitMQ詳解①、work模型②、交換機1、Fanout(廣播)交換機2、Direct(定向)交換機…

緩存置換:用c++實現最不經常使用(LFU)算法

在探討緩存置換算法時&#xff0c;我們曾詳細解讀過LRU&#xff08;Least Recently Used&#xff09;算法&#xff0c;它憑借 “最近最少使用” 的策略在緩存管理領域大放異彩。今天&#xff0c;讓我們將目光聚焦于另一種重要的緩存置換算法 ——LFU&#xff08;Least Frequent…

深度學習模型的部署實踐與Web框架選擇

引言 在深度學習項目的完整生命周期中&#xff0c;模型訓練只是第一步&#xff0c;將訓練好的模型部署到生產環境才能真正發揮其價值。本文將詳細介紹模型部署的核心概念、常見部署方式以及三種主流Python Web框架的對比分析&#xff0c;幫助開發者選擇最適合自己項目的技術方…

多功能氣體檢測報警系統,精準監測,守護安全

在化學品生產、石油化工、礦山、消防、環保、實驗室等領域&#xff0c;有毒有害氣體泄漏風險嚴重威脅工作人員和環境安全。化工企業生產中易產生大量可燃有毒氣體&#xff0c;泄漏達一定濃度易引發爆炸、中毒等重大事故&#xff1b;礦井下瓦斯、一氧化碳等有害氣體的濃度實時監…

lvgl多語言設置

搭建開發環境 安裝node.js 安裝node.js&#xff0c;點擊進入官網地址 安裝lv_i18n lv_i18n項目地址&#xff1a;Github&#xff1a;https://github.com/lvgl/lv_i18ngit運行命令安裝lv_i18n&#xff1a;npm i lv_i18n -g。測試命令&#xff1a;lv_i18n -h 搭建過程報錯 …

線程池技術

線程池基本概念 線程池就是在任務還沒有到來前&#xff0c;預先創建一定數量的線程放入空閑列表。這些線程都是處于阻塞狀態&#xff0c;不消耗CPU&#xff0c;但占用較小的內存空間。 當新任務到來時&#xff0c;緩沖池選擇一個空線程&#xff0c;把任務傳入此線程中運行&…

Go語言中的并發編程--詳細講解

文章目錄 Go語言并發編程**簡單介紹**goroutine channel 實現并發和并行for循環開啟多個協程Channel管道goroutine 結合 channel 管道**goroutine 結合 channel打印素數**單向管道Select多路復用Goroutine Recover解決協程中出現的PanicGo中的并發安全和互斥鎖 Go語言并發編程 …

C# NX二次開發:投影曲線和偏置曲線UFUN函數詳解

大家好&#xff0c;今天要講的是關于投影曲線和偏置曲線相關的函數。 &#xff08;1&#xff09;UF_CURVE_create_proj_curves1&#xff1a;這個函數的定義為創建投影曲線。 Defined in: uf_curve.h Overview Creates projection curves. Objects to project may be poi…

用R語言+隨機森林玩轉遙感空間預測-基于R語言機器學習遙感數據處理與模型空間預測技術及實際項目案例分析

遙感數據具有高維度、非線性及空間異質性等特點&#xff0c;傳統分析方法往往難以充分挖掘其信息價值。機器學習技術的引入為遙感數據處理與模型預測提供了新的解決方案&#xff0c;其中隨機森林&#xff08;Random Forest&#xff09;以其優異的性能和靈活性成為研究者的首選工…

unity 導入圖片后,可選擇精靈表自動切片,并可以導出為png

腳本源代碼&#xff1a; #if UNITY_EDITOR using UnityEditor; using UnityEngine; using System.IO; using UnityEditorInternal; using System.Collections.Generic; using System;public class TextureImporterWindow : EditorWindow {private string folderPath "D:…

使用 Azure DevSecOps 和 AIOps 構建可擴展且安全的多區域金融科技 SaaS 平臺

引言 金融科技行業有一個顯著特點&#xff1a;客戶期望能夠隨時隨地即時訪問其財務數據&#xff0c;并且對宕機零容忍。即使是短暫的中斷也會損害用戶的信心和忠誠度。與此同時&#xff0c;對數據泄露的擔憂已將安全提升到整個行業的首要地位。 在本文中&#xff0c;我們將探…

基于Django框架開發的B2C天天生鮮電商平臺

天天生鮮 介紹 天天生鮮是一個基于Django框架開發的B2C(Business-to-Customer)電商平臺&#xff0c;專注于生鮮食品的在線銷售。該項目采用了主流的Python Web開發框架Django&#xff0c;結合MySQL數據庫、Redis緩存等技術&#xff0c;實現了一個功能完整、界面友好的電商網站…

ASP.NET MVC4 技術單選及多選題目匯編

一、單選題&#xff08;共50題&#xff0c;每題2分&#xff09; 1、ASP.NET MVC4 的核心架構模式是什么&#xff1f; A. MVP B. MVVM C. MVC D.三層架構 答案&#xff1a;C 2、在 MVC4 中&#xff0c;默認的路由配置文件名是&#xff1f; A. Global.asax B. RouteConfig.cs C.…

26屆秋招收割offer指南

26屆暑期實習已經陸續啟動&#xff0c;這也意味著對于26屆的同學們來說&#xff0c;“找工作”已經提上了日程。為了幫助大家更好地準備暑期實習和秋招&#xff0c;本期主要從時間線、學習路線、核心知識點及投遞幾方面給大家介紹&#xff0c;希望能為大家提供一些實用的建議和…

數據中心機電建設

電氣系統 供配電系統 設計要求&#xff1a;數據中心通常需要雙路市電供電&#xff0c;以提高供電的可靠性。同時&#xff0c;配備柴油發電機組作為備用電源&#xff0c;確保在市電停電時能及時為關鍵設備供電。根據數據中心的規模和設備功耗&#xff0c;精確計算電力負荷&…

每日一題洛谷P1025 [NOIP 2001 提高組] 數的劃分c++

P1025 [NOIP 2001 提高組] 數的劃分 - 洛谷 (luogu.com.cn) #include<iostream> using namespace std; int n, k; int res 0; void dfs(int num,int step,int sum) {//判斷if (sum n) {if (step k) {res;return;}}if (sum > n || step k)return;//搜索for (int i …

大模型推理--從零搭建大模型推理服務器:硬件選購、Ubuntu雙系統安裝與環境配置

自從大模型火了之后就一直想自己組裝一臺機器去深入研究一下大模型&#xff0c;奈何囊中羞澀&#xff0c;遲遲也沒有行動。在下了很大的勇氣之后&#xff0c;終于花了接近4萬塊錢組裝了一臺臺式機&#xff0c;下面給大家詳細介紹一下我的裝機過程。 1.硬件配置 研究了一周&am…

第35周Zookkeeper+Dubbo Dubbo

Dubbo 詳解 一、Dubbo 是什么 官網與定義 Dubbo 是一款高性能、輕量級的開源服務框架&#xff0c;其官網為 double.apache.org&#xff0c;提供中文版本&#xff08;網址含 “zh”&#xff09;。 核心能力 Dubbo 具備六大核心能力&#xff1a; 面向接口代理的高性能 RPC …