环境:

操作系统:Win7 x64

编译器:VS2017

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

一、项目文件导入

1. 下载leveldb-windows,https://codeload.github.com/google/leveldb/zip/windows

2. 打开VS2017  File->New->Project From Existing Code

项目创建类型选择:Visual C++

3. Project file location: 选择leveldb-windows源码所在文件夹。D:\ProjecTrial\VC\leveldb-windows

Project name: 填写LevelDB。

4. Use Visula Studio -> Project tyep:

选择Windows application project。

5. 其他暂时不填写。以后可以在项目属性中再配置。

二、项目配置

项目建成后,Project->Property ,在x64位下属性,配置如下:

1. Configuration Properties->General->Configuration Type   配置成Static library (.lib)

2. C/C++ ->Preprocessor->Preprocessor Definitions

添加预处理器定义:LEVELDB_PLATFORM_WINDOWS;OS_WIN

3. C/C++ ->General-> Additional Include Directories  添加用到boost头文件目录和leveldb-windows 文件目录。

D:\ProgramFiles\boost\lib\include\boost-1_65_1

D:\ProjecTrial\VC\leveldb-windows

D:\ProjecTrial\VC\leveldb-windows\include

4. Linker->General->Additional library Directories  附加boost库

D:\ProgramFiles\boost\lib\lib

三、项目文件整理

1.手动从项目中排除所有的 *_test.cc 和*_bench.cc 文件;(在需要排除的文件右键Exclude From project)

排除其他平台的文件

port/port_android.cc

port/port_posix.cc

util/env_posix.cc

如果存在其他平台也排除

排除文件:

env_posix.cc

env_boost.cc

db_bench_sqlite3.cc

db_bench_tree_db.cc

c_test.c

2.  修改port/port.h文件,在第18行处新增加

#elif defined(LEVELDB_PLATFORM_WINDOWS)

#  include "port/port_win.h"

#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

3. 修改db/c.cc文件,在第8行处,注释掉#include

unistd.h 是 C 和 C++ 程序设计语言中提供对 POSIX 操作系统 API 的访问功能的头文件的名称。是Unix Standard的缩写。

windows下不支持.直接注释即可

4. 修改port/port_win.h文件,第34行处,注释掉#define snprintf _snprintf。因为VS2017中已经实现了snprintf的定义,所以不需要这个了。

四、编译生成LevelDB.lib。

leveldb android,VS2017编译LevelDB相关推荐

  1. windows下编译leveldb

    前提条件,下载boost库并编译 boost库弄好后,就可以编译leveldb了 首先,下载leveldb-windows,这个github上有 一. 1文件->新建->从现有代码文件创建 ...

  2. windows下如何编译 leveldb 1.5最新版

    占用.搜索 这个题目,没结果. 现在 已经有 leveldbwin 1.2 了.我需要1.5. 需要知道如何 编译 leveldb,怎么 修改 port才能支持 windows呢? 转载于:https ...

  3. Linux下编译leveldb报错,leveldb ubuntu 11.04下编译失败问题

    我在最新的ubuntu11.04下编译leveldb的时候发现问题,但是在更早前的这个版本很正常: yufeng@yufeng-laptop:/usr/src/leveldb$ make g++ -c ...

  4. vs2015编译linux源码,使用Visual Studio 2017(VS2017)编译OpenCC 1.0.4 (Open Chinese Convert)源代码...

    摘要:本文介绍了Win7 64位环境下OpenCC(Open Chinese Convert) 1.0.4源码编译全过程,除VS2017外,VS2013以上版本也应该基本同样适用,其他版本的Windo ...

  5. WIN10 x64搭建OLLVM4.0 android NDK 编译环境跨坑指南

    本文参考大量相关博客,甄选出有用的文章,帮助大家远离陷阱,节省时间. 目录 平台说明 环境准备 添加String混淆 集成到ndk编译工具链 模式介绍与使用方法 编译错误 Cannot open /d ...

  6. Windows10上使用VS2017编译MXNet源码操作步骤(C++)

    MXNet是一种开源的深度学习框架,核心代码是由C++实现.MXNet官网推荐使用VS2015或VS2017编译,因为源码中使用了一些C++14的特性,VS2013是不支持的.这里通过VS2017编译 ...

  7. windows 平台使用 VS2017 编译 libevent 源码

    一 依赖库编译 先要将其依赖的库编译好,其中openssl需要编译到libevent中,编译成libevent_openssl.lib库,zlib在新版本中只有示例用到. 1)windows 平台使用 ...

  8. Android 反编译Apk提取XML文件

    Apktool https://ibotpeaches.github.io/Apktool/install/ 下载地址:Apktool https://bitbucket.org/iBotPeache ...

  9. Android系统编译时集成三方APK

    1. 前言 最近在学习Android系统开发,在开发过程中可能要到将三方apk集成到系统中的需求.目前我了解的方法有两种. 一种是在系统编译完毕之后,再将三方apk文件放置到系统目录之下.参考如何将a ...

最新文章

  1. jar包部署shell脚本编写,在服务器上部署jar包,在Linux服务器上部署服务,设置编码格式,设置内存管理
  2. 计划任务执行php文件,linux系统下添加计划任务执行php文件方法
  3. #翻译NO.3# --- Spring Integration Framework
  4. 浏览器json格式化插件 yformater
  5. Qt-qml元素布局
  6. 【编程题目】复杂链表的复制☆
  7. 迁移Net项目为Net Core\Standard项目
  8. java 记事本换行_[求助]记事本自动换行
  9. 6759: 异或序列
  10. 2017模拟赛:还款计算
  11. c#数据类型的值传递和引用传递--基础拾遗
  12. C++小白课本练习1
  13. 《数字图像处理与机器视觉——Visual C++与Matlab实现》——0.1 数字图像
  14. 坐标转换工具类:84坐标系,火星坐标系,与百度坐标系之间的互相转换
  15. 解决无法删除文件夹的情况:文件夹正在使用,操作无法完成,因为其中的文件,或文件夹已在另一个程序中打开...
  16. 网络故障排查的思路和方法
  17. 古诗文登录验证码识别及登录
  18. Educoder-练习-Java循环综合练习四之日历打印
  19. 自己捣鼓的小程序实现订单代付的功能
  20. js 前端导出报错 格式不正确_vue项目前端导出word文件(bug解决)

热门文章

  1. 采用MP188XX隔离式栅极驱动器系列构建电源系统
  2. 【2023】分享一份网友的Linux运维面试题
  3. [笔记分享] [eMMC] 内核eMMC分区及对应名字读取
  4. MSF扫描开放的VNC空口令(虚拟网络计算机)
  5. 基于RNN文本生成 为男朋友写诗歌 附代码 详细教程
  6. [STM8L]TAB段式LCD液晶驱动程序
  7. 使用PHP导出Excel时处理复杂表头的万能方法
  8. TensorFlow-GPU安装与CUDA,cuDNN版本不匹配问题
  9. pytorch:scatter_
  10. 自学v512工作室_刘伟_Java高端培训系列视频_log4j遇到的问题