当前位置: 首页 > news >正文

【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

到此为止就是安装成功了

 

http://www.lryc.cn/news/26251.html

相关文章:

  • 这可能是Spring Boot Starter 讲的最清楚的一次了
  • activiti7执行流程详解
  • iframe页面传值取值
  • 2023年2月安全事件盘点
  • 2023上海国际电商物流包装产业展览会相约上海
  • 营业执照注册资本是什么意思
  • GB28181协议--SIP协议介绍
  • Python3 入门教程||Python3 元组||Python3 字典
  • 多元统计方法众多,分类还是排序?约束排序还是非约束排序?哪种方法或技术更适合我的研究目的或数据?
  • 有关白盒加密
  • C#学习系列之image控件配合ffmpeg播放视频(bitmap转image)
  • 电容笔和Apple pencil有什么区别?开学季电容笔排行榜
  • 【蓝桥杯每日一题】递归算法
  • java 寻找2020
  • 1.1 小白黑群晖构建,硬件推荐,硬件选购教程
  • 实验三、数字PID控制器的设计
  • python List和常用的方法
  • PMP证书要怎么考,含金量怎么样?
  • MySQL实战解析底层---事务隔离:为什么你改了我还看不见
  • 变更数据捕获(CDC)
  • 【移动端表格组件】uniapp简单实现H5,小程序,APP多端兼容表格功能,复制即用,简单易懂【详细注释版本】
  • 电子技术——CMOS 逻辑门电路
  • 【C++】C++11 新特性
  • JPA 相关注解说明
  • SAP 生产订单/流程订单中日期的解释
  • Java设计模式笔记——七大设计原则
  • 记录第一次接口上线过程
  • 时序预测 | MATLAB实现Rmsprop算法优化LSTM长短期记忆神经网络时间序列多步预测(滚动预测未来,多指标,含验证Loss曲线)
  • 如何利用Level2行情数据接口追板和交易股票?
  • MySQL常用的聚合函数