编译ROCKSDB总结

栏目: 数据库 · 发布时间: 6年前

内容简介:Rocksdb是挺好的一个东西,就是取得一个可用的库太麻烦。之前我是用的rocksdbsharp里面他有编译好windows 和 linux的库 兼容性还挺好,ubuntu win10 直接跑没毛病,可惜他是去年build的了,我要用的checkpoint 这么重要的功能,他这个版本没有。于是乎只好自行编译rocksdb,感觉上了一条贼船啊。我在使用rocksdb开发一个数据库

Rocksdb是挺好的一个东西,就是取得一个可用的库太麻烦。之前我是用的rocksdbsharp里面他有编译好windows 和 linux 的库 兼

容性还挺好,ubuntu win10 直接跑没毛病,可惜他是去年build的了,我要用的checkpoint 这么重要的功能,他这个版本没有。于是乎只好自行编译rocksdb,感觉上了一条贼船啊。

我在使用rocksdb开发一个数据库 https://github.com/lightszero/lightchain ,欢迎关注。

Ubuntu的顺利编译

Ubuntu,ubuntu 编译rocksdb比较顺利,按照官网说明一步步正常编译,略过。

编译通过的gcc版本为7.3

Windows的艰难编译

Windows版本因为是VC很熟悉,只不过原来都是一堆dll,互相引用,很麻烦,还有mt md的问题,其实就是机械的把所有依赖的源码找回来,编译成lib,改mt,体力活。最后变成一个啥也不依赖的dll,容易部署。

https://github.com/lightszero/lightchain/blob/master/lightdb/native/rocksdb-5.17.0.dll

已编好,仅限x64

Centos的灾难

后来把so文件放到centos跑不起,一看一堆so找不到

编译ROCKSDB总结

用ldd 指令 一看,缺一堆东西,第一反应是GCC有问题,试装GCC7.3,一路升级一路bug,最后也没装上,没新查了。

仔细观察rocksdb项目,facebook说明是gcc 4.8以上,centos7是满足的。既然是cmake管理的,那么从新来整cmake吧,忽略facebook的官方文档

期间发生过 cmake版本太低,make版本太低等等状况,吐血三升

Cmake使用很顺利

编译ROCKSDB总结

需要注意这几个选项,rocksdb这几个压缩算法,不开就没有,就只能不压缩了。

由于rocksdb是分层压缩的,通用的zlib肯定要带上,目前我对小数据选择的压缩算法是snappy。和leveldb一样,snappy一定要带上。

实际还是四个压缩都带上吧

然后按facebook官网说明安装依赖库,编译,一切成功。

然后ldd 一看,又吐血,yum 安装出来的snappy库缺两个依赖库,偏偏是最重要的这个你有问题。

没办法自己编译snappy吧,把最新的源码拖下来,继续吐血,什么鬼,这个项目只能生成.a

可是rocksdb那边妥妥的配置加载snappy.so啊,cmake我门外汉,打死我也不想去改这个。

后来去把snappy的历史版本全部都拖下来研究,嗯 snappy 1.1.5 可以用,编译出来的so也正常了

总结

总结一下,记录下来,现在凌晨五点四十,编译了妥妥的一晚上。Centos真香……

cmake 和 make 先升级了

我是将make升级到了4.2

Cmake升级到了3.6.2

成功编译出可用的rocksdb

gcc 需要4.8以上

rocksdb编译 别看文档了

  1. rocksdb的说明我怎么也装不上 make 直接一堆错,原因不明,我是直接重新搞了cmake,4个压缩库选项打开,

    编译ROCKSDB总结

    另外将gflags 和 snappy 原来的find_package 改成了find_library

    然后

    cmake .

    make rocksdb-shared -j

    成功

编译之前先安装一堆依赖库

这个可以看文档,没错

编译ROCKSDB总结

就是facebook 网页这一堆

最重要,yum install snappy snappy-devel 在我的centos7上有问题,依赖库找不到。

你编译 出来之后 ldd librocksdb.so 这样看依赖库情况,有not found 就是不行。

处理方法是自己编译 snappy1.1.5,然后cp 到 usr/lib 等几个目录


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

大数据时代的算法:机器学习、人工智能及其典型实例

大数据时代的算法:机器学习、人工智能及其典型实例

刘凡平 / 电子工业出版社 / 2017-1 / 49

《大数据时代的算法:机器学习、人工智能及其典型实例》介绍在互联网行业中经常涉及的算法,包括排序算法、查找算法、资源分配算法、路径分析算法、相似度分析算法,以及与机器学习相关的算法,包括数据分类算法、聚类算法、预测与估算算法、决策算法、关联规则分析算法及推荐算法。《大数据时代的算法:机器学习、人工智能及其典型实例》涉及的相关算法均为解决实际问题中的主流算法,对于工作和学习都有实际参考意义。 《......一起来看看 《大数据时代的算法:机器学习、人工智能及其典型实例》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

SHA 加密
SHA 加密

SHA 加密工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换