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
使用centos7 下载:
$ git clone --recurse-submodules https://github.com/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在Windows7上编译32位 (已经安装了 vs2015)
cmd or cygwin
cd leveldb
mkdir build
cd build
cmake -G "Visual Studio 14" ..
leveldb在Windows7上编译64位 (已经安装了 vs2015)
cmd or cygwin
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://github.com/google/leveldb/blob/master/doc/index.md
http://ju.outofmemory.cn/entry/80506
http://ju.outofmemory.cn/entry/95891
标签:gcc,leveldb,Windows,cd,编译,https,Linux,com From: https://blog.51cto.com/mapaware/6024038