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

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

    下载地址


  • 相关阅读:
    UOJ.26.[IOI2014]Game(交互 思路)
    Good Bye 2016 F.New Year and Finding Roots(交互)
    Codeforces.835E.The penguin's game(交互 按位统计 二分)
    Codeforces.744B.Hongcow's Game(交互 按位统计)
    Codeforces.862D.Mahmoud and Ehab and the binary string(交互 二分)
    正睿OI 提高 Day1T3 ZYB玩字符串(DP)
    划分vlan
    2三层交换机实现vlan间的路由
    交换机基础-交换机远程telnet
    自动化运维环境的搭建问题处理
  • 原文地址:https://www.cnblogs.com/jzssuanfa/p/7345340.html
Copyright © 2011-2022 走看看