区块链leveldb数据库安装
一、首先,需要在电脑上安装boost库。
下载地址在这里,下载压缩包之后解压,Index of main/release/1.79.0/source。
解压完成后在解压好的文件夹里面进入cmd,之后运行bootstrip.bat文件,如下如所示:
![](https://pic4.zhimg.com/80/v2-0be03daed4c54a4e5ebc3d39151d00f7_720w.webp)
完成之后应该会生成一个b2.exe,在命令行里面运行它进行编译安装:
![](https://pic1.zhimg.com/80/v2-0e508fd21fd5fc61236f57f9c8149270_720w.webp)
静等一段时间等编译完成。
![](https://pic1.zhimg.com/80/v2-3290e6fefd710955c018543e3b0e2910_720w.webp)
二、下载编译google benchmark
从github上克隆benchmark如下git@github.com:google/benchmark.git:
![](https://pic4.zhimg.com/80/v2-efb4a11e6701240548903ad4a19e797b_720w.webp)
之后将googletest库克隆到benchmark文件夹中git@github.com:google/googletest.git:
![](https://pic4.zhimg.com/80/v2-95348473a6f6d2bdf36208ad2a5c6893_720w.webp)
使用cmake编译benchmark如下,
![](https://pic4.zhimg.com/80/v2-8f29d991886e0a8d8ca9dec61f17b0a7_720w.webp)
最后会在benchmark文件夹中生成一个benchmark.sln文件,使用VStudio打开并生成ALL_BUILD:
![](https://pic4.zhimg.com/80/v2-86570e2a86efe9bf95aa4fd4cd7c78d3_720w.webp)
![](https://pic3.zhimg.com/80/v2-8ab5ab4df7bbfdb235ad40202204e87a_720w.webp)
三、安装dirent库
从git@github.com:tronkko/dirent.git处克隆dirent源码,用cmake编译并用VS生成:
![](https://pic3.zhimg.com/80/v2-2b5eb9da101a94d37b9299d157bb9066_720w.webp)
![](https://pic4.zhimg.com/80/v2-def733db0f714c8839fc1d7deba7e9d7_720w.webp)
![](https://pic1.zhimg.com/80/v2-6b59a2f328649510eeefbbee59466a1c_720w.webp)
四、下载kcwin32
Index of /kyotocabinet/winpkg,下载kcw32.zip并解压到合适的地方:
五、下载sqlite源码
SQLite Download Page,下载第一个source code并解压到合适的位置。
![](https://pic2.zhimg.com/80/v2-dbe770086d8cbba21387eaf8f30b817d_720w.webp)
六、下载编译pybind11
git@github.com:pybind/pybind11.git,克隆源代码,使用Cmake编译,VS生成,步骤同benchmark的编译。
![](https://pic3.zhimg.com/80/v2-e74ca2f176d397606213633af8af9ea2_720w.webp)
![](https://pic3.zhimg.com/80/v2-7e7630b346888953f6d6ee939dd8df26_720w.webp)
至此,所有的依赖库都安装完成,可以进行leveldb的编译了。
七、下载levelDB源码并编译。
1、下载源码
从github处clone源码到本地文件夹,网址在这里:git@github.com:google/leveldb.git
![](https://pic2.zhimg.com/80/v2-43dd6149311b53376948685dc7cefc11_720w.webp)
2、建立项目
使用VS从现有代码新建项目:
![](https://pic2.zhimg.com/80/v2-aca1af8475f0d2ea2dc06c71aedae0fd_720w.webp)
选择类型Visual C++:
![](https://pic1.zhimg.com/80/v2-17643696df450331f735e5a704aa144c_720w.webp)
选择代码位置和项目名称:
![](https://pic2.zhimg.com/80/v2-6c1650972e25a4bfc50ccec897785ce5_720w.webp)
选择项目Wie静态库:
![](https://pic2.zhimg.com/80/v2-07a5fe9c27d9830ea99c37490d3ff229_720w.webp)
预处理器填写LEVELDB_PLATFORM_WINDOWS;OS_WIN,搜索位置填写leveldb的源码以及源码里面的include文件夹F:\LevelDB\leveldb\include;F:\LevelDB\leveldb,用英文分号隔开:
![](https://pic2.zhimg.com/80/v2-3d6628fe864383a754dff2133eb438d1_720w.webp)
到这一步完成了项目的创建。
3、项目属性设置
之后是对项目调试的设置:
![](https://pic4.zhimg.com/80/v2-4a6ddacae08600936d51ed766dbdbb83_720w.webp)
首先在项目属性中将其配置成静态库:
![](https://pic1.zhimg.com/80/v2-ec16ef86717e2864b9b2e44551692754_720w.webp)
之后在预处理器定义中填写:LEVELDB_PLATFORM_WINDOWS;OS_WIN
![](https://pic1.zhimg.com/80/v2-998d2df1966c4b5b29c65375a93844b8_720w.webp)
在附加包含目录中包含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
![](https://pic2.zhimg.com/80/v2-e873e03138baf5ed334745649de8dcd1_720w.webp)
之后只需要编译windows平台的文件,故此手动排除posix之类的所有文件:
![](https://pic1.zhimg.com/80/v2-16097d6bc88a20be0db2fdb4da901aa4_720w.webp)
全部排出之后生成,生成成功即可使用leveldb。
![](https://pic4.zhimg.com/80/v2-515615fb84feae8b00592ce7e437dda7_720w.webp)
八、简单使用leveldb
1、环境配置
要使用leveldb,需要在创建项目之后在项目属性中添加leveldb和boost库以及链接器。下面做一个简单示例:
创建名为test的项目,编辑调试属性:
在附加包含中添加boost和leveldb的include:
![](https://pic4.zhimg.com/80/v2-f9fd6f49bba0600912aff8ca10abf5ef_720w.webp)
在我的电脑上则是如下:
![](https://pic3.zhimg.com/80/v2-2273c3c15b6750a161a5caaadeb67cf6_720w.webp)
在链接器中添加leveldb和boost的lib:
![](https://pic3.zhimg.com/80/v2-ff80cca4eab47fd42897a2cefbaeffb2_720w.webp)
在我的电脑中就是:
![](https://pic1.zhimg.com/80/v2-749b1703b3a2fb9f013c8c8bc138c2d0_720w.webp)
最后在链接器的附加依赖项中添加leveldb.lib:
![](https://pic2.zhimg.com/80/v2-42a8dc0ba58d45588a6ec61e32aa9e1d_720w.webp)
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;
}
运行结果如下:
![](https://pic4.zhimg.com/80/v2-f6c1f16aeb238672f459a9c8f8e5279b_720w.webp)
可以看到,test文件夹中也出现了testdb文件夹:
![](https://pic1.zhimg.com/80/v2-8747dddc0dfec9c6aa3a272bb9812410_720w.webp)
里面含有leveldb的数据库文件:
![](https://pic3.zhimg.com/80/v2-4931afac1019e356d5681f9981fcb43e_720w.webp)
至此,leveldb成功安装在电脑上并可以使用。
本文来自博客园,作者:zwbsoft,转载请注明原文链接:https://www.cnblogs.com/zwbsoft/p/17078302.html
电话微信:13514280351