1、下載源碼並編譯
git clone https://github.com/google/leveldb.git
cd leveldb
//編譯源碼的時候需要安裝cmake,並且版本需要大於3.9,我們選擇下載安裝包的方式安裝
//文件下載解壓
wget https://cmake.org/files/v3.12/cmake-3.12.2-Linux-x86_64.tar.gz
//解壓
tar zxvf cmake-3.12.2-Linux-x86_64.tar.gz
創建軟鏈接
注: 文件路徑是可以指定的, 一般選擇在/opt 或 /usr 路徑下, 這里選擇/opt
mv cmake-3.12.2-Linux-x86_64 /opt/cmake-3.12.2
ln -sf /opt/cmake-3.12.2/bin/* /usr/bin/
//到此cmake環境配置完成,接下來可以編譯代碼
cd leveldb
mkdir -p build && cd build cmake -DCMAKE_BUILD_TYPE=Release .. && cmake --build .
2、測試代碼
demo.cc
#include <cassert>
#include <iostream>
#include <string>
#include <leveldb/db.h>
int main() {
leveldb::DB* db;
leveldb::Options options;
options.create_if_missing = true;
leveldb::Status status = leveldb::DB::Open(options, "/tmp/testdb", &db);
assert(status.ok());
std::string key = "apple";
std::string value = "A";
std::string get;
leveldb::Status s = db->Put(leveldb::WriteOptions(), key, value);
if (s.ok()) s = db->Get(leveldb::ReadOptions(), key, &get);
if (s.ok()) std::cout << "讀取到的與(key=" << key << ")對應的(value=" << get << ")" << std::endl;
else std::cout << "讀取失敗!" << std::endl;
delete db;
return 0;
}
g++ -o demo demo.cc -pthread -lleveldb -std=c++11
注意:一定要加-lpthread,因為leveldb有用到線程相關調用。
./demo
讀取到的與(key=apple)對應的(value=A)