【RocksDB】Ubuntu20.04下编译rocksdb
前言:
我在刚学rocksdb的时候是在2022年,但是网上的资源很少,查了好久才把rocksdb安装成功,在这里向大家分享一下我的经历,安装过程中也报了很多错误,希望大家不要迷路
首先
在虚拟机里面安装依赖的包以及组件:总共七个依赖包和组件,依次执行下列命令(我在安装过程中没有出现任何问题,如果有遇到问题请评论,大家一起讨论)
sudo apt-get install build-essential
sudo apt-get install libgflags-dev
sudo apt-get install libsnappy-dev
sudo apt-get install zlib1g-dev
sudo apt-get install libbz2-dev
sudo apt-get install liblz4-dev
sudo apt-get install libzstd-dev
其次
安装cmake
官网下载地址:https://cmake.org/download/
这里我推荐直接使用下面命令安装
wget https://github.com/Kitware/CMake/releases/download/v3.17.0/cmake-3.17.0.tar.gz
解压:
tar -zxvf cmake-3.17.0.tar.gz
执行:
cd cmake-3.17.0
./bootstrap
make -j8
sudo make install
查看版本号:
cmake --version
结果如下即代表安装成功。
下载rocksdb
rocksdb github地址:https://github.com/facebook/rocksdb
1.下载rocksdb源码并解压
注意:在make static_lib之后要加make clean
wget https://github.com/facebook/rocksdb/archive/master.zip
unzip master.zip
cd rocksdb-master
#生成静态库
make static_lib
#下面命令我也不知道为什么要加,我加之后,生成动态库才可以安装成功
make clean
#生成动态库
make shared_lib
2.复制.h文件到/usr/lib中。
cp -r include/* /usr/include
sudo cp librocksdb.so.6.9.0 /usr/lib
sudo ln -s /usr/lib/librocksdb.so.6.9.0 /usr/lib/librocksdb.so.6.9
sudo ln -s /usr/lib/librocksdb.so.6.9.0 /usr/lib/librocksdb.so.6
sudo ln -s /usr/lib/librocksdb.so.6.9.0 /usr/lib/librocksdb.so
3.设置环境变量。
vi /etc/profile
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib:/usr/lib
source /etc/profile
4.创建文件夹:
mkdir /tmp/rocksdbResult
5.编写测试文件rocksdbtest.cpp:
vi rocksdbtest.cpp
#include <cstdio>
#include <string>
#include "rocksdb/db.h"
#include "rocksdb/slice.h"
#include "rocksdb/options.h"
using namespace std;
using namespace rocksdb;
const std::string PATH = "/tmp/rocksdbResult";
int main(){DB* db;Options options;options.create_if_missing = true;Status status = DB::Open(options, PATH, &db);assert(status.ok());Slice key("foo");Slice value("bar");std::string get_value;status = db->Put(WriteOptions(), key, value);if(status.ok()){status = db->Get(ReadOptions(), key, &get_value);if(status.ok()){printf("get %s\n", get_value.c_str());printf("get success\n"); }else{printf("get failed\n"); }}else{printf("put failed\n");}delete db;
}
6.编译运行该文件:
g++ -std=c++11 -o rocksdbtest rocksdbtest.cpp -lpthread -lrocksdb -ldl
./rocksdbtest

到此为止就是安装成功了
相关文章:
【RocksDB】Ubuntu20.04下编译rocksdb
前言: 我在刚学rocksdb的时候是在2022年,但是网上的资源很少,查了好久才把rocksdb安装成功,在这里向大家分享一下我的经历,安装过程中也报了很多错误,希望大家不要迷路 首先 在虚拟机里面安装依赖的包以…...
这可能是Spring Boot Starter 讲的最清楚的一次了
Spring Boot Starter 是 Spring Boot 中非常重要的一个功能,它可以帮助开发人员快速集成各种第三方库和框架。本文将从 Spring Boot Starter 的基本概念入手,深入讲解 Spring Boot Starter 的实现原理及其应用场景。 一、Spring Boot Starter 的概念 S…...
activiti7执行流程详解
什么是工作流? 官方定义:工作流是将一组任务组织起来以完成某个经营过程:定义了任务的触发顺序和触发条件,每个任务可以由一个或多个软件系统完成,也可以由一个或一组人完成,还可以由一个或多个人与软件系统…...
iframe页面传值取值
业务:目标界面的是用原生js写的 , 被镶嵌到vue平台上 , 现在要求vue点击跳转的时候 ,要附带上值 ,让原生界面获取到值 , 完成页面设置查询。 想法 : vue跳转,使用this.$route.qu…...
2023年2月安全事件盘点
一、基本信息 2023年2月安全事件共造成约3796万美元损失,相较于上个月,安全事件数量与损失金额都有显著上升,其中Platypus Finance闪电贷攻击为单次利用损失之最高达850万美元。本月RugPull数量基本与上月持平,损失金额占比显著降…...
2023上海国际电商物流包装产业展览会相约上海
2023年7月5-7日 | 上海新国际博览中心 同期举办:2023上海国际快递物流产业博览会 指导单位:上海市邮政管理局 中国快递协会 主办单位:上海市快递行业协会 上海市仓储与配送行业协会 上海市物流协会 承办单位:上海信世展览服务有…...
营业执照注册资本是什么意思
一、营业执照注册资本是什么意思 营业执照上的注册资本是指合营企业在登记管理机构登记的资本总额,是合营各方已经缴纳的或合营者承诺一定要缴纳的出资额的总和。我国法律、法规规定,合营企业成立之前必须在合营企业合同、章程中明确企业的注册资本&…...
GB28181协议--SIP协议介绍
1、SIP协议简介 SIP(Session Initiation Protocol,会话初始协议)是一个用于建立、更改和终止多媒体会话的应用层控制协议,其中的会话可以是IP电话、多媒体会话或多媒体会议(GB28181安防使用的是SIP协议)。S…...
Python3 入门教程||Python3 元组||Python3 字典
Python3 元组 Python 的元组(tuple,简写为tup)与列表类似,不同之处在于元组的元素不能修改。 元组使用小括号(),列表使用方括号[]。 元组创建很简单,只需要在括号中添加元素,并使用逗…...
多元统计方法众多,分类还是排序?约束排序还是非约束排序?哪种方法或技术更适合我的研究目的或数据?
生态环境领域研究中常常面对众多的不同类型的数据或变量,当要同时分析多个因变量(y)时需要用到多元统计分析(multivariate statistical analysis)。多元统计分析内容丰富,应用广泛,是非常重要和…...
有关白盒加密
白盒密码技术白皮书 有关白盒的概念 其实白盒黑盒之类概念其实是软件保护方面的概念,在很多方面都有应用,例如 黑盒: 传统的加密技术是默认假定处于黑盒中的,也就是假定攻击者无法获得密钥。具体而言,认为攻击者并…...
C#学习系列之image控件配合ffmpeg播放视频(bitmap转image)
C#学习系列之image控件配合ffmpeg播放视频(bitmap转image)啰嗦ffmpeg输入格式与输出格式bitmap数据在image控件上显示数据转化总结啰嗦 关于音视频解码问题,采用海思解码库进行解码,存在C#托管调用动态库,会出现卡顿的…...
电容笔和Apple pencil有什么区别?开学季电容笔排行榜
与苹果的 Pencil相比,市面上常见的电容笔在压感上是没有具备重力压感,只具备着一种倾斜压感。对于绘画没有过高要求的话,其实一支普通的平替电容笔,就能为我们解决日常很多问题。它不仅可以用在办公上,也可以用在笔记、…...
【蓝桥杯每日一题】递归算法
🍎 博客主页:🌙披星戴月的贾维斯 🍎 欢迎关注:👍点赞🍃收藏🔥留言 🍇系列专栏:🌙 蓝桥杯 🌙我与杀戮之中绽放,亦如黎明的花…...
java 寻找2020
题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 小蓝有一个数字矩阵,里面只包含数字 0 0 和 2 2。小蓝很喜欢 2020 2020,他想找 到这个数字矩阵中有多少个 2020 2020 。 小蓝只关注三种构成 …...
1.1 小白黑群晖构建,硬件推荐,硬件选购教程
构建一台黑群晖需要购买:CPU主板、散热器、内存条、机箱、电源、硬盘、网卡(可选)。物理机安装若需硬解需选择918/920此类机型系统进行安装。关联教程:黑群晖安装中的报错:https://guoqing.blog.csdn.net/article/deta…...
实验三、数字PID控制器的设计
实验三、数字PID控制器的设计 --- 直流闭环调速实验 一、实验目的 1.理解晶闸管直流单闭环调速系统的数学模型和工作原理;. 2. 掌握PID控制器参数对控制系统性能的影响; 3. 能够运用MATLAB/Simulink软件对控制系统进行正确建模并对模块进行正确的参数设置; 4.…...
python List和常用的方法
List:列表中包含多个数据,数据之间使用逗号分隔,索引从0开始。 空列表: dir:查看列表的所有方法 List常用方法:insert、append,extend、del、remove、pop、clear、count、index 增加insert(索引…...
PMP证书要怎么考,含金量怎么样?
对于新改版的PMP提纲,很多人都不知道如何去备考,这里我就总结一些经验,希望能帮助到大家!! 一,学习内容及考试形式? 学习内容:《PMBOK》项目管理知识体系指南,建议大家…...
MySQL实战解析底层---事务隔离:为什么你改了我还看不见
目录 前言 隔离性与隔离级别 事务隔离的实现 事务的启动方式 前言 和数据库打交道的时候,总是会用到事务最经典的例子就是转账,你要给朋友小王转 100 块钱,而此时你的银行卡只有 100 块钱转账过程具体到程序里会有一系列的操作࿰…...
ES6从入门到精通:前言
ES6简介 ES6(ECMAScript 2015)是JavaScript语言的重大更新,引入了许多新特性,包括语法糖、新数据类型、模块化支持等,显著提升了开发效率和代码可维护性。 核心知识点概览 变量声明 let 和 const 取代 var…...
docker详细操作--未完待续
docker介绍 docker官网: Docker:加速容器应用程序开发 harbor官网:Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台,用于将应用程序及其依赖项(如库、运行时环…...
SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现
摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序,以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务,提供稳定高效的数据处理与业务逻辑支持;利用 uniapp 实现跨平台前…...
相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...
Pinocchio 库详解及其在足式机器人上的应用
Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库,专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性,并提供了一个通用的框架&…...
JAVA后端开发——多租户
数据隔离是多租户系统中的核心概念,确保一个租户(在这个系统中可能是一个公司或一个独立的客户)的数据对其他租户是不可见的。在 RuoYi 框架(您当前项目所使用的基础框架)中,这通常是通过在数据表中增加一个…...
C/C++ 中附加包含目录、附加库目录与附加依赖项详解
在 C/C 编程的编译和链接过程中,附加包含目录、附加库目录和附加依赖项是三个至关重要的设置,它们相互配合,确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中,这些概念容易让人混淆,但深入理解它们的作用和联…...
Vue ③-生命周期 || 脚手架
生命周期 思考:什么时候可以发送初始化渲染请求?(越早越好) 什么时候可以开始操作dom?(至少dom得渲染出来) Vue生命周期: 一个Vue实例从 创建 到 销毁 的整个过程。 生命周期四个…...
【免费数据】2005-2019年我国272个地级市的旅游竞争力多指标数据(33个指标)
旅游业是一个城市的重要产业构成。旅游竞争力是一个城市竞争力的重要构成部分。一个城市的旅游竞争力反映了其在旅游市场竞争中的比较优势。 今日我们分享的是2005-2019年我国272个地级市的旅游竞争力多指标数据!该数据集源自2025年4月发表于《地理学报》的论文成果…...
用 Rust 重写 Linux 内核模块实战:迈向安全内核的新篇章
用 Rust 重写 Linux 内核模块实战:迈向安全内核的新篇章 摘要: 操作系统内核的安全性、稳定性至关重要。传统 Linux 内核模块开发长期依赖于 C 语言,受限于 C 语言本身的内存安全和并发安全问题,开发复杂模块极易引入难以…...
