After remaking N times, I made this blog finally.
Let’s start from a new Ubuntu now.
Steps Step 1首先安装gcc、g++等工具。
sudo apt install build-essential
然后安装一些必要的库,用于RocksDB的Compression。
sudo apt-get install libsnappy-dev zlib1g-dev libbz2-dev liblz4-dev libzstd-dev libgflags-devStep 2
下载RocksDB源码并解压。
wget https://github.com/facebook/rocksdb/archive/v6.25.1.zip unzip rocksdb-6.25.1.zip
Tips:
- 版本号可自己选择,下面涉及到版本号的命令需要对应更改。e.g. v6.6.4 (2020-01-31)
- 此过程需要的时间可能较长,可以通过其他方法下载zip压缩包,拷贝至Ubuntu系统。(Recommended)
- 如果压缩包名字略有不同,自行更改。
编译生成动态链接库和静态链接库
cd rocksdb-6.25.1 make shared_lib && sudo make install-shared make static_lib && sudo make install-static
Tips:
-
如果先生成静态链接库再生成动态链接库,在生成动态链接库的时候会报错。
make static_lib && sudo make install-static make shared_lib && sudo make install-shared
解决办法如下:
make clean make shared_lib make static_lib
-
此过程需要的时间较长(约10min)。
最后执行sudo make install命令。
sudo make installStep 4
设置环境变量
#echo "/usr/local/lib" |sudo tee /etc/ld.so.conf.d/rocksdb-x86_64.confsudo ldconfig -v make shared_lib && sudo make install-shared sudo ldconfig -v
Tips:
- #echo "/usr/local/lib" |sudo tee /etc/ld.so.conf.d/rocksdb-x86_64.confsudo ldconfig -v: refresh the ldconfig cacheINSTALL_PATH=/usr
- sudo ldconfig -v: refresh the ldconfig cache
新建测试程序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/rocksdb_tmp"; 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 success!!n", get_value.c_str()); } else { printf("get failedn"); } } else { printf("put failedn"); } delete db; }
动态编译
g++ -std=c++11 -o rocksdbtest rocksdbtest.cpp -lrocksdb -lpthread
执行
./rocksdbtest
正确结果
get bar success!!Reference
- https://blog.51cto.com/u_15081048/2592774
- https://www.jianshu.com/p/575b2e27b028
- https://blog.csdn.net/zhangpeterx/article/details/96869454
- https://www.cxyzjd.com/article/zhangpeterx/96869454



