【Linux系统下levelDB的安装和使用】

本文详细介绍了如何在Linux系统中下载、编译和使用LevelDB数据库,包括解决编译时遇到的第三方组件问题。同时,文章还提供了CMake版本升级的方法,确保编译过程顺利进行。通过一个简单的示例程序展示了LevelDB的基本操作,并给出了程序的编译和运行步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下载leveDB源码

登录网站https://github.com/google/leveldb,点击Download
在这里插入图片描述

levelDB的编译

1、通过命令解压源码

unzip leveldb-main.zip

2、编译源码

cd leveldb-main
mkdir -p build && cd build
cmake -DCMAKE_BUILD_TYPE=Release .. && cmake --build .

注:编译前保证cmake已安装,且版本>=3.9,cmake版本升级方法见文末。

从官网下载的源码编译会报如下错误:
在这里插入图片描述
这里主要是缺少第三方组件googletest和benchmark
进入third_party目录,我们会发现相关组件目录为空,因此需要下载相关组件才能完成编译。在github的工程源码的third_party目录下有googletest和benchmark的下载链接,点击下载后将其解压到对于目录。

第三方组件解压后如下:
在这里插入图片描述
在这里插入图片描述
再次进入build目录,执行如下命令进行编译

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

编译结果如下:
在这里插入图片描述
至此,编译完成,编译结果如下:
在这里插入图片描述
3 执行测试:

./leveldb_tests 

在这里插入图片描述

./leveldb_tests 

4 安装leveldb库

sudo make install

leveDB的使用

下面以一个简单的demo程序来展示levedb的应用:
demo.cpp

#include <cassert>
#include <iostream>
#include <string>
#include <leveldb/db.h>

int main()
{
  leveldb::DB* db;
  leveldb::Options options;
  options.create_if_missing = true;
  leveldb::Status status = leveldb::DB::Open(options, "/tmp/testdb", &db);
  assert(status.ok());

  std::string key = "test_key";
  std::string value = "test_value";
  std::string get;

  leveldb::Status s = db->Put(leveldb::WriteOptions(), key, value);

  if (s.ok())
        s = db->Get(leveldb::ReadOptions(), key, &get);
  if (s.ok())
        std::cout << "key=" << key << "\nvalue=" << get  << std::endl;
  else
        std::cout << "failed to find the key!" << std::endl;

  delete db;

  return 0;
}

编译运行:

 g++ -o demo demo.cpp -pthread -lleveldb
 ./demo

结果如下:
在这里插入图片描述

cmake版本升级

可通过如下命令查看cmake版本:

cmake --version

如果cmake版本过低,需下载新版本。
//文件下载解压
wget https://cmake.org/files/v3.12/cmake-3.12.2-Linux-x86_64.tar.gz
//解压
tar zxvf cmake-3.12.2-Linux-x86_64.tar.gz
//创建软链接
mv cmake-3.12.2-Linux-x86_64 /opt/cmake-3.12.2
ln -sf /opt/cmake-3.12.2/bin/* /usr/bin/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值