区块链leveldb数据库安装
一、首先,需要在电脑上安装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数据库安装的更多相关文章
- 用Hyperledger Fabric(超级账本)来构建Java语言开发区块链的环境
面向 Java 开发人员的链代码简介 您或许听说过区块链,但可能不确定它对 Java™ 开发人员有何用.本教程将帮助大家解惑.我将分步展示如何使用 Hyperledger Fabric v0.6 来构 ...
- (转)区块链共识机制分析——论PoW,PoS,DPos和DAG的优缺点
近期,随着区块链技术在社区中的声音越来越大,业界已经开始从技术角度对区块链进行全方位的解读.作为第一批区块链技术的实现,传统比特币与以太坊在共识机制.存储机制.智能合约机制.跨链通讯机制等领域并没有非 ...
- ICO和区块链区别
区块链项目众筹(ICO)浅析 2017-07-25 原创 Fintech科普大使 ICO是区块链初创公司项目融资的重要方式类似于Kickstarter众筹,但有不同之处(具体在下一节详述),可以避开传 ...
- 区块链钱包开发 - USDT - 一、Omni本地钱包安装
背景 Tether(USDT)中文又叫泰达币,是一种加密货币,是Tether公司推出的基于稳定价值货币美元(USD)的代币Tether USD,也是目前数字货币中最稳定的币,USDT目前发行了两种代币 ...
- 《区块链:从入门到放弃》之obc安装步骤
obc安装步骤 朋友们可能会好奇,厨师不研究菜谱怎么改研究兵法了,哈哈,我原本是app出身,最近被安排去预研区块链和比特币技术,2个月下来,颇有斩获.期间得到IBM的CC同学指导我一步一步安装obc的 ...
- 区块链侧链应用开发平台Asch节点安装及区块生产教程
1 系统要求 必须是linux系统 必须有公网ip 建议使用ubuntu 14.04 64位 建议内存1G以上 建议带宽2Mb以上 2 安装 2.1 下载 wget https://www.asch. ...
- 《区块链DAPP开发入门、代码实现、场景应用》笔记3——Ethereum Wallet的安装
以太坊官方网站可以下载最新版本的Ethereum Wallet,用户无需选择,浏览器会根据访问者操作系统版本自动展现合适的版本,点击DOWNLOAD按钮下载即可安装,如图2.9所示,其下载网址: ht ...
- 安装比特币区块链钱包API(Blockchain Wallet用户发送和接收比特币的简单API)
区块链钱包API提供了一个简单的界面,商家可以用它以编程方式与钱包进行交互. 安装:要使用此API,您需要运行负责管理区块链钱包的小型本地服务. 您的应用程序通过HTTP API调用在本地与此服务进行 ...
- [区块链\理解BTCD源码]GO语言实现一个区块链原型
摘要 本文构建了一个使用工作量证明机制(POW)的类BTC的区块链.将区块链持久化到一个Bolt数据库中,然后会提供一个简单的命令行接口,用来完成一些与区块链的交互操作.这篇文章目的是希望帮助大家理解 ...
- 基于Tendermint的区块链漂流瓶简单实现
本文主要借demo介绍基于Tendermint的区块链应用开发,这个demo很简单,主要包含以下功能: 扔漂流瓶 捞漂流瓶 之后投放者和打捞者可以相互传递[加密]信息 代码已上传至github. Te ...
随机推荐
- CH334H与GL85x功能对比(过流检测与电源控制说明)
CH334H与GL85x功能对比 CH334H是符合 USB2.0 协议规范的高性能MTT 4 端口 USB2.0 HUB 控制器芯片,高ESD特性,工业级设计,外围精简,可应用于计算机和工控机主板 ...
- 终于弄明白了 RocketMQ 的存储模型
RocketMQ 优异的性能表现,必然绕不开其优秀的存储模型 . 这篇文章,笔者按照自己的理解 , 尝试分析 RocketMQ 的存储模型,希望对大家有所启发. 1 整体概览 首先温习下 Rocket ...
- vue 中安装并使用echart
本文为博主原创,转载请注明出处: 1.安装echart 依赖: 安装命令: npm install echarts --save 在vscode 的终端窗口进行执行,如图所示: 执行完之后,查看 项目 ...
- day06-Vue03
Vue03 10.组件化编程 10.1基本说明 官网链接:https://v2.cn.vuejs.org/v2/guide/components-registration.html 在大型应用开发时, ...
- Java学习笔记:2022年1月2日
Java学习笔记:2022年1月2日 摘要:为何学习Java及Java的基础语法知识,记事本的显示原理,Java中的重要知识点 目录 Java学习笔记:2022年1月2日 1.正式开始学习Java! ...
- Java学习笔记:2021年12月31日下午-2022年1月1日上午
Java学习笔记:2021年12月31日下午-2022年1月1日上午 摘要:主要记录了计算机的电气构成,学习Linux系统的原因以及关于Linux以及相关操作的基础知识. 目录 Java学习笔记:20 ...
- JS逆向之补环境过瑞数详解
JS逆向之补环境过瑞数详解 "瑞数" 是逆向路上的一座大山,是许多JS逆向者绕不开的一堵围墙,也是跳槽简历上的一个亮点,我们必须得在下次跳槽前攻克它!! 好在现在网上有很多讲解瑞数 ...
- C++获取含有中文字符的string长度
:前言 造车轮的时候要用到中文字符串的长度辨别,发现char的识别不准,进行了一番研究. > 开始研究 在Windows下,中文字符在C++中的内存占用为2字节,此时采用字符串长度获取函数得到的 ...
- 《深入理解Java虚拟机》第三章读书笔记(一)——垃圾回收算法
参考书籍<深入理解java虚拟机>周志明著 系列文章目录和关于我 本文主要介绍垃圾回收理论知识 1.jvm哪些区域需要进行垃圾回收 虚拟机栈,本地方法栈,程序计数器都是线程私有的,随线程而 ...
- 文献阅读01:由I类HLA转录缺失导致的联合免疫治疗的获得性癌症耐药性
背景 Merkel cell carcinoma:梅克尔细胞癌又名皮肤小梁状癌.原发性皮肤神经内分泌癌.皮肤原发性小细胞癌及皮肤APUD瘤. HLA:MHC基因产物在不同细胞表面表达,通常称之为MHC ...