levelDB(一) 原始碼編譯安裝

2021-09-07 14:12:52 字數 1901 閱讀 3266

git clone
2.編譯安裝
cd leveldb/

mkdir -p build &&

cd build

cmake -dcmake_build_type=release ..

&& cmake --build .

這樣,在leveldb/build/目錄下生成了乙個靜態庫libleveldb.a,我們把這個靜態庫複製到/usr/local/lib/, 並把leveldb相關的標頭檔案複製到/usr/local/include/

sudo

cp build/libleveldb.a /usr/local/lib/

sudo

cp -r include/leveldb/ /usr/local/include/

3.測試

新建 demo.cc:

#include

#include

#include

#include

intmain()

g++ -o demo demo.cc -pthread -lleveldb -std=c++11
$ ./demo
注:

還有另一種辦法。可以做到步驟2,之後繼續下邊操作。

3 測試:

cd leveldb # 跳到level目錄頂層
#include

"leveldb/db.h"

#include

#include

using namespace std;

using namespace leveldb;

intmain()

然後再修改leveldb/cmakelists.txt檔案。修改如下:

$ git

diff

diff --git a/cmakelists.txt b/cmakelists.txt

index df486ea..a95c29a 100644

--- a/cmakelists.txt

+++ b/cmakelists.txt

@@ -273,6 +273,7 @@ if(leveldb_build_tests)

leveldb_test(

"$/util/env_test.cc"

) if(not build_shared_libs)

+ leveldb_test(

) leveldb_test(

"$/db/autocompact_test.cc"

) leveldb_test(

"$/db/corruption_test.cc"

) leveldb_test(

"$/db/db_test.cc"

)

重新編譯:

cd leveldb/build

cmake ..

# 因為cmakefilelists.txt發生了改動,需要重新解析。

make

注意:如果是想生成可以debug的版本的程式。應變如下

cd leveldb/build

cmake -dcmake_build_type=debug ..

make

cd leveldb/build

valueexample

可以看到valueexample的輸出,則說明程式編譯成功。

參考

leveldb 原始碼導讀

1,slice.h中slice是leveldb內部使用的字串類,很簡單 2,leveldb 儲存編碼 對於位元組儲存分大端小端位元組序還是小端小端位元組序 leveldb使用的是小端位元組序儲存,低位位元組排放在記憶體的低位址端,高位位元組排放在記憶體的高位址端。編碼分為變長的varint和固定大小...

leveldb原始碼分析1

leveldb是乙個key value型的儲存引擎,由google開發,並宣布在bsd許可下開放源 plain git clone plain cd leveldb make all 此時生成libleveldb.a庫檔案。拷貝leveldb的標頭檔案到 usr include下 plain cp ...

levelDB原始碼分析 SSTable

sstable是bigtable中至關重要的一塊,對於leveldb來說也是如此,對leveldb的sstable實現細節的了解也有助於了解bigtable中一些實現細節。本節內容主要講述sstable的靜態布局結構,sstable檔案形成了不同level的層級結構,至於這個層級結構是如何形成的我們...