首页 > 数据库 >区块链leveldb数据库安装

区块链leveldb数据库安装

时间:2023-01-31 11:14:32浏览次数:77  
标签:LevelDB 区块 数据库 benchmark 编译 leveldb git include

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

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

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

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

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

二、下载编译google benchmark

从github上克隆benchmark如下[email protected]:google/benchmark.git:

之后将googletest库克隆到benchmark文件夹中[email protected]:google/googletest.git:

使用cmake编译benchmark如下,

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

三、安装dirent库

[email protected]:tronkko/dirent.git处克隆dirent源码,用cmake编译并用VS生成:

四、下载kcwin32

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

五、下载sqlite源码

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

六、下载编译pybind11

[email protected]:pybind/pybind11.git,克隆源代码,使用Cmake编译,VS生成,步骤同benchmark的编译。

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

七、下载levelDB源码并编译。

1、下载源码

从github处clone源码到本地文件夹,网址在这里:[email protected]: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,区块,数据库,benchmark,编译,leveldb,git,include
From: https://www.cnblogs.com/zwbsoft/p/17078302.html

相关文章

  • 快速使用时序数据库InfluxDB
    快速使用时序数据库InfluxDBInfluxDB是一款优秀的时间序列数据库,适合存储设备性能、日志、物联网传感器等带时间戳的数据。1. InfluxDB主要特性InfluxDB也就是TSDB,是......
  • PostgreSQL学习笔记-1.基础知识:创建、删除数据库和表格
    PostgreSQL创建数据库PostgreSQL创建数据库可以用以下三种方式:1、使用CREATEDATABASESQL语句来创建。2、使用createdb命令来创建。3、使用pgAdmin工具。例如,我......
  • [etcd]基本数据库操作
    前言etcd数据库操作基本围绕着对键值和目录的CRUD操作,以及生命周期的管理。之前在单节点部署了三实例集群,而etcdctl默认找的是127.0.0.1:2379,所以这里先声明一个临时全局......
  • 使用 Python 操作 Mongo 数据库
    1.简介MongoDB是一个基于分布式文件存储的数据库,旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系数据库和非关系数据库之间的产品,它支持的......
  • 17.1 SQL Server数据库邮件
    SQLServer数据库邮件目录SQLServer数据库邮件简介配置SQLServer数据库邮件使用数据库邮件发送邮件1)发送邮件示例2)发送带有查询结果的电子邮件简介数据库电子邮件可以......
  • 宝塔部署 宝塔远程连接数据库出现1045问题
    宝塔远程连接数据库出现1045问题宝塔面板在安装好mysql后本地navicat远程连接的时候报错1045这个问题是数据库权限问题在宝塔面板页面找到软件商店—已安装—mysql—......
  • zodb,一个python对象数据库
    1.什么是对象数据库关系型数据库,是指采用了关系模型来组织数据的数据库,以行和列的形式存储数据库,典型如mysql。NoSQL数据库,是指非关系型数据库,典型如mongodb。对象数据库,是......
  • python web框架多进程部署下数据库连接问题
    python常用的web框架,诸如flask,django,在生产部署时,都会选择多进程的部署方式,选用的中间件多为uwsgi或者gunicorn。如果项目里使用了数据库,那么就要考虑数据库连接在多进程下......
  • [转]常用数据库常见用法对比
    SCOPE_IDENTITY 和 @@IDENTITY 的作用都是取得返回在当前会话中的任何表内所生成的最后一个标识值,平时一般使用SCOPE_IDENTITY 参考:https://www.cnblogs.com/a......
  • Django shell交互模式操作数据库
    打开shell交互模式命令pythonmanage.pyshell新增数据先进入交互模式,再导入类,用create创建数据,最后save(不save也可以),完成后可在数据库表中查看到创建的数据查询数......