Linux環境下levelDB源碼編譯與安裝


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)



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM