LevelDB简介
LevelDB 是一个可持久化的KV数据库引擎。由Google的工程师Jeff Dean和Sanjay Ghemawat开发。
LevelDB源码下载方式
linux下cd到要保存的目录,例如我保存在/home/leveldb/下
git clone https://github.com/google/leveldb.git
LevelDB的编译与安装
使用cmake来编译
1. 解压 编译 安装cmake
tar -zxvf cmake-3.12.2.tar.gz (解压)
cd cmake-3.12.2/
mv cmake-3.12.2-Linux-x86_64 /opt/cmake-3.12.2 (移动至opt目录下)
ln -sf /opt/cmake-3.12.2/bin/* /usr/bin/ (创建软链接)
2. leveldb的编译安装
cd /home/leveldb/
mkdir -p build && cd build (创建build目录)
cmake -DCMAKE_BUILD_TYPE=Release .. && cmake --build . (执行编译)
编译过程中会遇到以下问题:
CMake Error at CMakeLists.txt:299 (add_subdirectory):
The source directory
../leveldb/third_party/googletest
does not contain a CMakeLists.txt file.
CMake Error at CMakeLists.txt:303 (set_property):
set_property could not find TARGET gtest. Perhaps it has not yet been
created.
CMake Error at CMakeLists.txt:305 (set_property):
set_property could not find TARGET gmock. Perhaps it has not yet been
created.
在网上查了好多资源,结合具体的错误日志分析到原因:
最新的commit是支持了googletest,但只是在cmake里面加了googletest,并没有在项目里加入第三方库,所以cmake报错(第三方库未更新)
解决方法:
git clone https://github.com/google/googletest
git submodule update --init --recursive
重新执行cmake命令, 编译通过!
个人总结:
leveldb编译其实并不难,难的是这个过程中遇到问题如何排查,如何通过日志一步步分析原因,这个排查过程对一个人的提高是很大的。