leveldb在Windows和Linux上編譯

leveldb在Windows和Linux上編譯

 

LevelDB是Google傳奇工程師Jeff Dean和Sanjay Ghemawat開源的KV存儲引擎(而非SQL),它是一種非關係型數據庫。leveldb只有一層,即objects,也即key-value。相當於一個庫就是一堆key-value,而由於它的一個庫是對應一個文件目錄,所以它其實也沒有庫的概念。而最令人喜愛的是,它不需要依賴任何服務,和sqlite3一樣,它完全只依賴文件系統,它與redis完全不同,redis是完全依賴內存,並且需要起一個服務,而leveldb是依賴文件系統,內存只是它的一個寫操作的中轉站,而且它不需要起服務,可以直接打包進應用裏面,作爲一個應用的內部數據存儲引擎。因此,在應用領域,就有了sqlite3和leveldb這兩個非常不錯的選擇。

而ldb的性能更高,吞吐更大。適用於客戶端數據緩存,區塊鏈節點保存數據等等。下面是ldb的構建過程。

https://github.com/google/leveldb

對於rhel6上的舊版本的gcc (如 gcc-4.4.7) 則需要升級 gcc 至少到 gcc-6.4.0 和 cmake 到 3.14,參考我寫的教程:

https://github.com/pepstack/update-gcc-el6

下載:

    git clone [email protected]:google/leveldb.git

leveldb在Linux上編譯

    cd leveldb

    mkdir xbuild

 cmake -DCMAKE_BUILD_TYPE=Release .. && cmake --build .

以上生成靜態庫:libleveldb.a

leveldb在Android上編譯

    https://shunix.com/port-leveldb-to-android/

leveldb在Windows上編譯32位 (已經安裝了 vs2015)

    cmd

    cd leveldb

    mkdir build

    cd build

    cmake -G "Visual Studio 14" ..

leveldb在Windows上編譯64位 (已經安裝了 vs2015)

    mkdir build64

    cd build64

    cmake -G "Visual Studio 14 Win64" ..

以上用 VS2015 打開生成的 leveldb.sln 編譯即可。

更改代碼生成 多線程DLL爲 多線程

    notepad++打開所有build?目錄下的 CMakeCache.txt 文件,替換 /MDd 爲 /MTd ,替換 /MD 爲 /MT。重新加載生成即可。

leveldb 的api接口

    https://www.jianshu.com/p/775407717343

    https://www.cnblogs.com/pandang/p/7279306.html

    https://github.com/google/leveldb/blob/master/doc/index.md

    http://ju.outofmemory.cn/entry/80506

    http://ju.outofmemory.cn/entry/95891

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章