zoukankan      html  css  js  c++  java
  • Windows下编译LevelDB

    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:LIBleveldb-windows文件夹中。所以使用的是E:LIBleveldb-windows


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


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


    包含搜索路径 填写 E:LIBleveldb-windows;E:LIBleveldb-windowsinclude
    不填写也能够。后期能够在项目属性中配置



    检查配置部分 Boost库在E:LIBoost64文件夹下
    在项目的属性页中 配置成64位平台


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


    配置属性-》C/C++-》常规-》附加包括文件夹
    E:LIBoost64;E:LIBleveldb-windows;E:LIBleveldb-windowsinclude


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


    链接器-》常规-》附加库文件夹 或者 库管理器-》附加库文件夹
    E:LIBoost64stagelib

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


    排除其它平台的文件
    port/port_android.cc
    port/port_posix.cc
    util/env_posix.cc
    假设存在其它平台也排除
     

    改源代码的地方
    1 dbc.cc文件里头文件unistd.h
    unistd.h 是 C 和 C++ 程序设计语言中提供对 POSIX 操作系统 API 的訪问功能的头文件的名称。是Unix Standard的缩写。
    windows下不支持.直接凝视就可以
    2 portport.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

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

    下载地址


  • 相关阅读:
    Football Foundation (FOFO) TOJ 2556
    JAVA- String类练习
    JAVA- 清除数组重复元素
    Mysql远程登陆错误:ERROR 2003
    Linux学习之路(五)压缩命令
    Linux学习之路(四)帮助命令
    如何识别真Microsoft服务与非Microsoft服务来定位病毒自己的服务
    如何用命令行删除EasyBCD开机选择项?
    JAVA- 成员变量与局部变量的区别
    JAVA- 内部类
  • 原文地址:https://www.cnblogs.com/jzssuanfa/p/7345340.html
Copyright © 2011-2022 走看看