Windows下编译LevelDB

原创 2015年07月08日 18:16:52
Windows下编译LevelDB


flyfish 2015-7-8


LevelDB是开源的存在磁盘上的key-value存储 由google的Jeffrey Dean 和Sanjay Ghemawat编写。


环境
操作系统:windows x64
编译器: VC2010

配置

需要Boost库支持,需要先将Boost库编译为64位版本


1文件-》新建-》从现有代码文件创建新项目
打开 从现有代码文件创建新项目 向导窗口


2要创建什么类型的项目? 选择Visual C++
3项目文件位置 选择源码所在位置leveldb-windows文件夹所在位置 
这里源码文件在E:\LIB\leveldb-windows目录中,所以使用的是E:\LIB\leveldb-windows


4项目名称填写 LevelDB
5使用Visual Studio 项目类型选择 静态库(LIB)项目
如果静态库(LIB)项目没有导入成功,可以先选择Windows应用程序项目


6 在设置"调试"配置的设置 中 
预处理器定义 填写 LEVELDB_PLATFORM_WINDOWS;OS_WIN


包括搜索路径 填写 E:\LIB\leveldb-windows;E:\LIB\leveldb-windows\include
不填写也可以。后期可以在项目属性中配置



检查配置部分 Boost库在E:\LIB\boost64目录下
在项目的属性页中 配置成64位平台


配置属性-》常规-》配置类型
静态库(.lib)


配置属性-》C/C++-》常规-》附加包含目录
E:\LIB\boost64;E:\LIB\leveldb-windows;E:\LIB\leveldb-windows\include


配置属性-》C/C++-》常规-》预处理器-》预处理器定义 
LEVELDB_PLATFORM_WINDOWS;OS_WIN


链接器-》常规-》附加库目录 或者 库管理器-》附加库目录
E:\LIB\boost64\stage\lib

排除文件
手动从项目中排除所有的 *_test.cc 和*_bench.cc 文件


排除其他平台的文件
port/port_android.cc
port/port_posix.cc
util/env_posix.cc
如果存在其他平台也排除
 

改源码的地方
1 db\c.cc文件中头文件unistd.h
unistd.h 是 C 和 C++ 程序设计语言中提供对 POSIX 操作系统 API 的访问功能的头文件的名称。是Unix Standard的缩写。
windows下不支持.直接注释即可
2 port\port.h文件中
注明使用的是windows系统
在预编译中增加


#ifndef STORAGE_LEVELDB_PORT_PORT_H_
#define STORAGE_LEVELDB_PORT_PORT_H_


#include <string.h>


// Include the appropriate platform specific file below.  If you are
// porting to a new platform, see "port_example.h" for documentation
// of what the new port_<platform>.h file must provide.
#if defined(LEVELDB_PLATFORM_POSIX)
#  include "port/port_posix.h"
#elif defined(LEVELDB_PLATFORM_CHROMIUM)
#  include "port/port_chromium.h"
#elif defined(LEVELDB_PLATFORM_ANDROID)
#  include "port/port_android.h"
#elif defined(LEVELDB_PLATFORM_WINDOWS)// 新增部分
#  include "port/port_win.h"
#endif  // STORAGE_LEVELDB_PORT_PORT_H_


#endif 




增加部分是
#elif defined(LEVELDB_PLATFORM_WINDOWS)
#include "port/port_win.h"


编译生成64位的lib

已编译好源码和库文件下载地址

下载地址


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Windows上面编译和简单测试一下leveldb-1.9.0

http://gmd20.blog.163.com/blog/static/1684392320131733835919/ 已经port到windows 平台了,不过在官网下载的源码包是不能...

Leveldb windows 编译

原文:http://blog.sina.com.cn/s/blog_52f26d0f0102v6hl.html 1:Leveldb和Leveldb编译所需要的boost都是x64版本 2:Lev...

windows下编译python的levelDB库

本人使用的是python2.6, 32位,附上编译出来的dll , [不支持xp] http://download.csdn.net/detail/toontong/4933540 支持xp的...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

在Linux下编译Google leveldb数据库及在C++中操作示例

1:简介        Leveldb是一个google实现的非常高效的kv数据库,可按照字符串键值顺序映射进行存贮。目前的版本1.2能够支持billion级别的数据量了。 在这个数量级别下还有着非...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

leveldb——leveldb入门篇之Linux下编译配置和使用

1.首先,从github上下载leveldb源码的zip文件 使用命令#wget https://codeload.github.com/google/leveldb/zip/master2.下载完...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

C++操作leveldb示例笔记

leveldb是一个google实现的超高性能的k/v数据库,官方介绍说读写性能都很强大。下载下来make生成动态链接库libleveldb.so以及静态链接库libleveldb.a文件,下面就写一...
  • ciaos
  • ciaos
  • 2012年09月03日 17:15
  • 1997

leveldb安装及第一个程序

os: ubuntu 14.04 lts leveldb version=1.19 安装 cd leveldb make 此时leveldb/下多出out-shared和out-st...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Windows下编译LevelDB
举报原因:
原因补充:

(最多只允许输入30个字)