一、首先,需要在电脑上安装boost库。

下载地址在这里,下载压缩包之后解压,Index of main/release/1.79.0/source

解压完成后在解压好的文件夹里面进入cmd,之后运行bootstrip.bat文件,如下如所示:

完成之后应该会生成一个b2.exe,在命令行里面运行它进行编译安装:

静等一段时间等编译完成。

二、下载编译google benchmark

从github上克隆benchmark如下git@github.com:google/benchmark.git:

之后将googletest库克隆到benchmark文件夹中git@github.com:google/googletest.git:

使用cmake编译benchmark如下,

最后会在benchmark文件夹中生成一个benchmark.sln文件,使用VStudio打开并生成ALL_BUILD:

三、安装dirent库

git@github.com:tronkko/dirent.git处克隆dirent源码,用cmake编译并用VS生成:

四、下载kcwin32

Index of /kyotocabinet/winpkg,下载kcw32.zip并解压到合适的地方:

五、下载sqlite源码

SQLite Download Page,下载第一个source code并解压到合适的位置。

六、下载编译pybind11

git@github.com:pybind/pybind11.git,克隆源代码,使用Cmake编译,VS生成,步骤同benchmark的编译。

至此,所有的依赖库都安装完成,可以进行leveldb的编译了。

七、下载levelDB源码并编译。

1、下载源码

从github处clone源码到本地文件夹,网址在这里:git@github.com:google/leveldb.git

2、建立项目

使用VS从现有代码新建项目:

选择类型Visual C++:

选择代码位置和项目名称:

选择项目Wie静态库:

预处理器填写LEVELDB_PLATFORM_WINDOWS;OS_WIN,搜索位置填写leveldb的源码以及源码里面的include文件夹F:\LevelDB\leveldb\include;F:\LevelDB\leveldb,用英文分号隔开:

到这一步完成了项目的创建。

3、项目属性设置

之后是对项目调试的设置:

首先在项目属性中将其配置成静态库:

之后在预处理器定义中填写:LEVELDB_PLATFORM_WINDOWS;OS_WIN

在附加包含目录中包含boost, leveldb, sqlite, pybind11, googletest, googlemock, benchmark, kcwin32,dirent的include文件夹以及boost和leveldb的整个文件夹(这一步就是为了包含头文件):

在我的电脑上就是:F:\LevelDB\sqlite3、F:\LevelDB\pybind11\include、F:\LevelDB\kcwin32\include、F:\LevelDB\dirent\include、F:\LevelDB\benchmark\googletest\googlemock\include、F:\LevelDB\benchmark\googletest\googletest\include、F:\LevelDB\benchmark\include、F:\LevelDB\leveldb\include、F:\LevelDB\leveldb、F:\LevelDB\boost\boost_1_79_0

之后只需要编译windows平台的文件,故此手动排除posix之类的所有文件:

全部排出之后生成,生成成功即可使用leveldb。

八、简单使用leveldb

1、环境配置

要使用leveldb,需要在创建项目之后在项目属性中添加leveldb和boost库以及链接器。下面做一个简单示例:

创建名为test的项目,编辑调试属性:

在附加包含中添加boost和leveldb的include:

在我的电脑上则是如下:

在链接器中添加leveldb和boost的lib:

在我的电脑中就是:

最后在链接器的附加依赖项中添加leveldb.lib:

2、运行代码

添加以下代码:

#include "leveldb/db.h"
#include<iostream> int main() {
// 声明
leveldb::DB* mydb;
leveldb::Options myoptions;
leveldb::Status mystatus; // 创建
myoptions.create_if_missing = true;
mystatus = leveldb::DB::Open(myoptions, "testdb", &mydb); // 写入数据
std::string key = "gonev";
std::string value = "a handsome man";
if (mystatus.ok()) {
mydb->Put(leveldb::WriteOptions(), key, value);
} // 读取数据
std::string key_ = "gonev";
std::string val_ = "";
mydb->Get(leveldb::ReadOptions(), key_, &val_); std::cout << key_ << ": " << val_ << std::endl;
}

运行结果如下:

可以看到,test文件夹中也出现了testdb文件夹:

里面含有leveldb的数据库文件:

至此,leveldb成功安装在电脑上并可以使用。

区块链leveldb数据库安装的更多相关文章

  1. 用Hyperledger Fabric(超级账本)来构建Java语言开发区块链的环境

    面向 Java 开发人员的链代码简介 您或许听说过区块链,但可能不确定它对 Java™ 开发人员有何用.本教程将帮助大家解惑.我将分步展示如何使用 Hyperledger Fabric v0.6 来构 ...

  2. (转)区块链共识机制分析——论PoW,PoS,DPos和DAG的优缺点

    近期,随着区块链技术在社区中的声音越来越大,业界已经开始从技术角度对区块链进行全方位的解读.作为第一批区块链技术的实现,传统比特币与以太坊在共识机制.存储机制.智能合约机制.跨链通讯机制等领域并没有非 ...

  3. ICO和区块链区别

    区块链项目众筹(ICO)浅析 2017-07-25 原创 Fintech科普大使 ICO是区块链初创公司项目融资的重要方式类似于Kickstarter众筹,但有不同之处(具体在下一节详述),可以避开传 ...

  4. 区块链钱包开发 - USDT - 一、Omni本地钱包安装

    背景 Tether(USDT)中文又叫泰达币,是一种加密货币,是Tether公司推出的基于稳定价值货币美元(USD)的代币Tether USD,也是目前数字货币中最稳定的币,USDT目前发行了两种代币 ...

  5. 《区块链:从入门到放弃》之obc安装步骤

    obc安装步骤 朋友们可能会好奇,厨师不研究菜谱怎么改研究兵法了,哈哈,我原本是app出身,最近被安排去预研区块链和比特币技术,2个月下来,颇有斩获.期间得到IBM的CC同学指导我一步一步安装obc的 ...

  6. 区块链侧链应用开发平台Asch节点安装及区块生产教程

    1 系统要求 必须是linux系统 必须有公网ip 建议使用ubuntu 14.04 64位 建议内存1G以上 建议带宽2Mb以上 2 安装 2.1 下载 wget https://www.asch. ...

  7. 《区块链DAPP开发入门、代码实现、场景应用》笔记3——Ethereum Wallet的安装

    以太坊官方网站可以下载最新版本的Ethereum Wallet,用户无需选择,浏览器会根据访问者操作系统版本自动展现合适的版本,点击DOWNLOAD按钮下载即可安装,如图2.9所示,其下载网址: ht ...

  8. 安装比特币区块链钱包API(Blockchain Wallet用户发送和接收比特币的简单API)

    区块链钱包API提供了一个简单的界面,商家可以用它以编程方式与钱包进行交互. 安装:要使用此API,您需要运行负责管理区块链钱包的小型本地服务. 您的应用程序通过HTTP API调用在本地与此服务进行 ...

  9. [区块链\理解BTCD源码]GO语言实现一个区块链原型

    摘要 本文构建了一个使用工作量证明机制(POW)的类BTC的区块链.将区块链持久化到一个Bolt数据库中,然后会提供一个简单的命令行接口,用来完成一些与区块链的交互操作.这篇文章目的是希望帮助大家理解 ...

  10. 基于Tendermint的区块链漂流瓶简单实现

    本文主要借demo介绍基于Tendermint的区块链应用开发,这个demo很简单,主要包含以下功能: 扔漂流瓶 捞漂流瓶 之后投放者和打捞者可以相互传递[加密]信息 代码已上传至github. Te ...

随机推荐

  1. 神奇的DEBUG:因为异常导致MongoDB容器无法启动

    越来越多的项目使用docker进行环境搭建,统一了开发和运行环境,好处颇多.但同时也引入了许多复杂性,比如一些容器服务突然无法启动,那么debug起来就比物理机安装的服务麻烦一些. 这段时间Mac P ...

  2. Sql Server中order by对varchar类型排序结果不对

    1.问题描述 我写一个sql想要把查询结果根据LineNumber升序进行排序,即1.0,1.1,1.2,...1.3.2....2.0,......10.0,......15.2,......这样子 ...

  3. ssm——springMVC整理

    目录 1.概念 1.1.什么是SpringMVC 1.2.B/S架构 1.3.MVC结构 1.4.Spring MVC常用名词 1.5.常用注解 1.6.rest和restfull 1.7.Reque ...

  4. CVE-2022-26923 Windows域提权漏洞

    前言 Active Directory 域服务,是一种目录服务,提供了存储目录数据信息以及用户相关的一些密码,电话号码等等一些数据信息,且可让用户和管理员使用这些数据,有利于域管理员对用户的数据信息进 ...

  5. [OpenCV实战]6 基于特征点匹配的视频稳像

    目录 1 介绍 1.1 视频稳定的方法 1.2 使用点特征匹配的视频稳定 2 算法 2.1 帧间运动信息获取 2.1.1 合适的特征点获取 2.1.2 Lucas-Kanade光流法 2.1.3 运动 ...

  6. electron + go 如何从sqlite获取数据

    我现在的数据在sqlite中,保存在mac本地的一个文件中.用了electron+vue搭建了一个客户端. 我大概希望是这样的逻辑,先加载本地db文件,然后再获取数据. 这里就有一个问题,我怎么获取s ...

  7. kafka详解(02) - kafka_2.11-2.4.1安装部署

    kafka详解(02) - kafka_2.11-2.4.1安装部署 环境准备 下载安装包 官网下载地址:https://kafka.apache.org/downloads.html 2.4.1版本 ...

  8. [WPF]auto和*总结

    Auto和*效果 Auto 表示自动适应显示内容的宽度, 控件有多大,就显示多大. * 则表示按比例来分配宽度. 话不多说,直接上例子理解 例子1 代码: <Grid ShowGridLines ...

  9. 【白话模电1】PN结与二极管

    距离上一次写半导体,已经过了很久了,上次分享了本征半导体的基本概念: https://zhuanlan.zhihu.com/p/109483580 今天给大家聊聊半导体工业中的基础:PN结与二极管 1 ...

  10. C++初探索

    C++初探索 前言 C++ 和 C 的区别主要在8个方面: 输入和输出 引用 inline函数 函数默认值 函数重载 模板函数 new 和 delete namespace 我仅对印象不深的地方做了总 ...