区块链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成功安装在电脑上并可以使用。

posted @ 2023-01-31 11:01  zwbsoft  阅读(91)  评论(0编辑  收藏  举报