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的層級結構,至於這個層級結構是如何形成的我們...