leveldb android,VS2017编译LevelDB
环境:
操作系统: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相关推荐
- windows下编译leveldb
前提条件,下载boost库并编译 boost库弄好后,就可以编译leveldb了 首先,下载leveldb-windows,这个github上有 一. 1文件->新建->从现有代码文件创建 ...
- windows下如何编译 leveldb 1.5最新版
占用.搜索 这个题目,没结果. 现在 已经有 leveldbwin 1.2 了.我需要1.5. 需要知道如何 编译 leveldb,怎么 修改 port才能支持 windows呢? 转载于:https ...
- Linux下编译leveldb报错,leveldb ubuntu 11.04下编译失败问题
我在最新的ubuntu11.04下编译leveldb的时候发现问题,但是在更早前的这个版本很正常: yufeng@yufeng-laptop:/usr/src/leveldb$ make g++ -c ...
- 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 ...
- WIN10 x64搭建OLLVM4.0 android NDK 编译环境跨坑指南
本文参考大量相关博客,甄选出有用的文章,帮助大家远离陷阱,节省时间. 目录 平台说明 环境准备 添加String混淆 集成到ndk编译工具链 模式介绍与使用方法 编译错误 Cannot open /d ...
- Windows10上使用VS2017编译MXNet源码操作步骤(C++)
MXNet是一种开源的深度学习框架,核心代码是由C++实现.MXNet官网推荐使用VS2015或VS2017编译,因为源码中使用了一些C++14的特性,VS2013是不支持的.这里通过VS2017编译 ...
- windows 平台使用 VS2017 编译 libevent 源码
一 依赖库编译 先要将其依赖的库编译好,其中openssl需要编译到libevent中,编译成libevent_openssl.lib库,zlib在新版本中只有示例用到. 1)windows 平台使用 ...
- Android 反编译Apk提取XML文件
Apktool https://ibotpeaches.github.io/Apktool/install/ 下载地址:Apktool https://bitbucket.org/iBotPeache ...
- Android系统编译时集成三方APK
1. 前言 最近在学习Android系统开发,在开发过程中可能要到将三方apk集成到系统中的需求.目前我了解的方法有两种. 一种是在系统编译完毕之后,再将三方apk文件放置到系统目录之下.参考如何将a ...
最新文章
- jar包部署shell脚本编写,在服务器上部署jar包,在Linux服务器上部署服务,设置编码格式,设置内存管理
- 计划任务执行php文件,linux系统下添加计划任务执行php文件方法
- #翻译NO.3# --- Spring Integration Framework
- 浏览器json格式化插件 yformater
- Qt-qml元素布局
- 【编程题目】复杂链表的复制☆
- 迁移Net项目为Net Core\Standard项目
- java 记事本换行_[求助]记事本自动换行
- 6759: 异或序列
- 2017模拟赛:还款计算
- c#数据类型的值传递和引用传递--基础拾遗
- C++小白课本练习1
- 《数字图像处理与机器视觉——Visual C++与Matlab实现》——0.1 数字图像
- 坐标转换工具类:84坐标系,火星坐标系,与百度坐标系之间的互相转换
- 解决无法删除文件夹的情况:文件夹正在使用,操作无法完成,因为其中的文件,或文件夹已在另一个程序中打开...
- 网络故障排查的思路和方法
- 古诗文登录验证码识别及登录
- Educoder-练习-Java循环综合练习四之日历打印
- 自己捣鼓的小程序实现订单代付的功能
- js 前端导出报错 格式不正确_vue项目前端导出word文件(bug解决)
热门文章
- 采用MP188XX隔离式栅极驱动器系列构建电源系统
- 【2023】分享一份网友的Linux运维面试题
- [笔记分享] [eMMC] 内核eMMC分区及对应名字读取
- MSF扫描开放的VNC空口令(虚拟网络计算机)
- 基于RNN文本生成 为男朋友写诗歌 附代码 详细教程
- [STM8L]TAB段式LCD液晶驱动程序
- 使用PHP导出Excel时处理复杂表头的万能方法
- TensorFlow-GPU安装与CUDA,cuDNN版本不匹配问题
- pytorch:scatter_
- 自学v512工作室_刘伟_Java高端培训系列视频_log4j遇到的问题