最近的新项目是NewSQL,底层存储引擎是rocksdb,于是在Ubuntu下编译了一下,下面是编译过程:
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
官网下载地址: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 github地址:https://github.com/facebook/rocksdb
1.下载rocksdb源码并解压
wget https://github.com/facebook/rocksdb/archive/master.zip
unzip master.zip
cd rocksdb-master
#生成静态库
make static_lib
#生成动态库
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
#include
#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
工欲善其事,必先利其器。一个好的IDE能够为我们的开发提升很高的效率,这里我选择Clion作为rocksdb开发的IDE。CLion是Jetbrains公司旗下新推出的一款专为开发C/C++所设计的跨平台IDE。因为Clion依赖于java,所以我们先装openJDK。
sudo apt-get install openjdk-8-jdk
下载地址:https://www.jetbrains.com/clion/download/
执行下列命令:
wget https://download-cf.jetbrains.com/cpp/CLion-2019.3.5.tar.gz
tar -zxvf CLion-2019.3.5.tar.gz
cd CLion-2019.3.5/bin
./clion.sh
点击New CMake Project from Sources,选择rocksdb-master文件夹:
点击Build -> Build Project,等待编译完成,如下即为成功:
在CMakeLists中加入代码:
点击reload changes,选择rocksdb_rocksdbtest,可运行或者debug调试。
写这篇文章主要是为了记录一下Ubuntu下编译rocksdb的过程,之前在网上没看到介绍比较详细的文章。这是我第一次接触rocksdb,之后也争取抽时间记录一下rocksdb学习过程。