Linux下编译与安装leveldb

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编译其实并不难,难的是这个过程中遇到问题如何排查,如何通过日志一步步分析原因,这个排查过程对一个人的提高是很大的。

 

 

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值