一、首先,需要在电脑上安装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成功安装在电脑上并可以使用。

最新文章

  1. bootstrap 布局(收藏/摘抄)
  2. Adaboost 卡口车辆检测训练
  3. preg_match_all
  4. Newtonsoft.Json.dll反序列化JSON字符串的方法
  5. 批处理[Batch]
  6. CIconListBox带图标的列表框类
  7. hdu_1072_Nightmare(BFS)
  8. OpenGL—Android 开机动画源码分析二
  9. 使用CefSharp 在C#用户控件中嵌入Chrome浏览器使用方法
  10. ClearCase config_spec
  11. Linux - gcc 的简易用法 (编译、参数与链结)
  12. 微信小程序小结02-- 完整的demo
  13. 深度学习论文翻译解析(一):YOLOv3: An Incremental Improvement
  14. Eclipse使用之将Git项目转为Maven项目, ( 注意: 最后没有pom.xml文件的, 要转化下 )
  15. Unity3D Shader图像扭曲过场效果
  16. SQL 函数 DateDiff()
  17. springMVC学习(2)
  18. python模块之time模块
  19. js正则取出一个字符串小括号中的内容
  20. cesium可视化空间数据1

热门文章

  1. CH432,CH438,CH9434串口扩展芯片常见问题
  2. 大数据 - ADS 数据可视化实现
  3. AIGC 很火,想微调个自己的模型试试看?(不是卖课的)
  4. 图文并茂学习记录--从零开始进行微信小程序开发+引入Vant Weapp组件
  5. django框架之drf:3、API执行流程、Response源码剖析、序列化器的简介和使用、反序列化的校验
  6. 从 PyTorch DDP 到 Accelerate 到 Trainer,轻松掌握分布式训练
  7. Jpbc哈希函数如何实现
  8. 基于Kali Linux的渗透测试工具-Discover脚本
  9. 修改安卓ID为硬件唯一ID
  10. 在vs code中进行本地调试和开启本地服务器