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

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