一、首先,需要在电脑上安装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