• Linux环境下levelDB源码编译与安装


    1、下载源码并编译

    git clone https://github.com/google/leveldb.git

    cd leveldb

    //编译源码的时候需要安装cmake,并且版本需要大于3.9,我们选择下载安装包的方式安装
    //文件下载解压
    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

    创建软链接

    注: 文件路径是可以指定的, 一般选择在/opt 或 /usr 路径下, 这里选择/opt
    mv cmake-3.12.2-Linux-x86_64 /opt/cmake-3.12.2
    ln -sf /opt/cmake-3.12.2/bin/*  /usr/bin/

    //到此cmake环境配置完成,接下来可以编译代码

    cd leveldb

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

    2、测试代码

    demo.cc

    #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 = "apple";
    std::string value = "A";
    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 << ")对应的(value=" << get << ")" << std::endl;
    else std::cout << "读取失败!" << std::endl;

    delete db;

    return 0;
    }

    g++ -o demo demo.cc -pthread -lleveldb -std=c++11
    注意:一定要加-lpthread,因为leveldb有用到线程相关调用。
    ./demo
    读取到的与(key=apple)对应的(value=A)


  • 相关阅读:
    [翻译] .NET 官宣跨平台 UI 框架 MAUI
    手写一个简易的多周期 MIPS CPU
    介绍一个基于 .NET 的船新 PHP SDK + Runtime: PeachPie
    C# 9 新特性:代码生成器、编译时反射
    .NET 5 中的正则引擎性能改进(翻译)
    你所不知道的 C# 中的细节
    拿 C# 搞函数式编程
    从未来看 C#
    直接使用汇编编写 .NET Standard 库
    用 F# 手写 TypeScript 转 C# 类型绑定生成器
  • 原文地址:https://www.cnblogs.com/zhousong918/p/10904027.html
Copyright © 2020-2023  润新知