如果不是必要不建议自己编译rocksdb,编译的过程比较耗时费力。现在已经有很多编译好的文件可供使用。

Java

<!-- https://mvnrepository.com/artifact/org.rocksdb/rocksdbjni -->
<dependency>
<groupId>org.rocksdb</groupId>
<artifactId>rocksdbjni</artifactId>
<version>5.10.3</version>
</dependency>

Go版本

https://github.com/leeyazhou/gorocksdb.git

Mac 环境安装:

brew install rocksdb

以下是rocksdb的编译教程步骤:


https://github.com/facebook/rocksdb/blob/master/INSTALL.md

Compilation

Important: If you plan to run RocksDB in production, don't compile using default make or make all. That will compile RocksDB in debug mode, which is much slower than release mode.

RocksDB's library should be able to compile without any dependency installed, although we recommend installing some compression libraries (see below). We do depend on newer gcc/clang with C++11 support.

There are few options when compiling RocksDB:

  • [recommended] make static_lib will compile librocksdb.a, RocksDB static library. Compiles static library in release mode.

  • make shared_lib will compile librocksdb.so, RocksDB shared library. Compiles shared library in release mode.

  • make check will compile and run all the unit tests. make check will compile RocksDB in debug mode.

  • make all will compile our static library, and all our tools and unit tests. Our tools depend on gflags. You will need to have gflags installed to run make all. This will compile RocksDB in debug mode. Don't use binaries compiled by make all in production.

  • By default the binary we produce is optimized for the platform you're compiling on (-march=native or the equivalent). SSE4.2 will thus be enabled automatically if your CPU supports it. To print a warning if your CPU does not support SSE4.2, build withUSE_SSE=1 make static_lib or, if using CMake, cmake -DFORCE_SSE42=ON. If you want to build a portable binary, add PORTABLE=1 before your make commands, like this:PORTABLE=1 make static_lib.

Dependencies

  • You can link RocksDB with following compression libraries:

    • zlib - a library for data compression.
    • bzip2 - a library for data compression.
    • lz4 - a library for extremely fast data compression.
    • snappy - a library for fast data compression.
    • zstandard - Fast real-time compression algorithm.
  • All our tools depend on:

    • gflags - a library that handles command line flags processing. You can compile rocksdb library even if you don't have gflags installed.

Supported platforms

  • Linux - Ubuntu

    • Upgrade your gcc to version at least 4.8 to get C++11 support.
    • Install gflags. First, try: sudo apt-get install libgflags-dev If this doesn't work and you're using Ubuntu, here's a nice tutorial: (http://askubuntu.com/questions/312173/installing-gflags-12-04)
    • Install snappy. This is usually as easy as: sudo apt-get install libsnappy-dev.
    • Install zlib. Try: sudo apt-get install zlib1g-dev.
    • Install bzip2: sudo apt-get install libbz2-dev.
    • Install lz4: sudo apt-get install liblz4-dev.
    • Install zstandard: sudo apt-get install libzstd-dev.
  • Linux - CentOS / RHEL

    • Upgrade your gcc to version at least 4.8 to get C++11 support: yum install gcc48-c++
    • Install gflags:

        git clone https://github.com/gflags/gflags.git
      cd gflags
      git checkout v2.0
      ./configure && make && sudo make install

      Notice: Once installed, please add the include path for gflags to your CPATH environment variable and the lib path to LIBRARY_PATH. If installed with default settings, the include path will be /usr/local/include and the lib path will be /usr/local/lib.

    • Install snappy:

        sudo yum install snappy snappy-devel
    • Install zlib:

        sudo yum install zlib zlib-devel
    • Install bzip2:

        sudo yum install bzip2 bzip2-devel
    • Install lz4:

        sudo yum install lz4-devel
    • Install ASAN (optional for debugging):

        sudo yum install libasan
    • Install zstandard:

       wget https://github.com/facebook/zstd/archive/v1.1.3.tar.gz
      mv v1.1.3.tar.gz zstd-1.1.3.tar.gz
      tar zxvf zstd-1.1.3.tar.gz
      cd zstd-1.1.3
      make && sudo make install
  • OS X:

    • Install latest C++ compiler that supports C++ 11:

      • Update XCode: run xcode-select --install (or install it from XCode App's settting).
      • Install via homebrew.
        • If you're first time developer in MacOS, you still need to run: xcode-select --install in your command line.
        • run brew tap homebrew/versions; brew install gcc48 --use-llvmto install gcc 4.8 (or higher).
    • run brew install rocksdb
  • FreeBSD (11.01):

    • You can either install RocksDB from the Ports system using cd /usr/ports/databases/rocksdb && make install, or you can follow the details below to install dependencies and compile from source code:

    • Install the dependencies for RocksDB:

      export BATCH=YES cd /usr/ports/devel/gmake && make install cd /usr/ports/devel/gflags && make install

      cd /usr/ports/archivers/snappy && make install cd /usr/ports/archivers/bzip2 && make install cd /usr/ports/archivers/liblz4 && make install cd /usr/ports/archivesrs/zstd && make install

      cd /usr/ports/devel/git && make install

    • Install the dependencies for RocksJava (optional):

      export BATCH=yes cd /usr/ports/java/openjdk7 && make install

    • Build RocksDB from source: cd ~ git clone https://github.com/facebook/rocksdb.git cd rocksdb gmake static_lib

    • Build RocksJava from source (optional): cd rocksdb export JAVA_HOME=/usr/local/openjdk7 gmake rocksdbjava

  • iOS:

    • Run: TARGET_OS=IOS make static_lib. When building the project which uses rocksdb iOS library, make sure to define two important pre-processing macros: ROCKSDB_LITE and IOS_CROSS_COMPILE.
  • Windows:

    • For building with MS Visual Studio 13 you will need Update 4 installed.
    • Read and follow the instructions at CMakeLists.txt
    • Or install via vcpkg
      • run vcpkg install rocksdb:x64-windows
  • AIX 6.1

    • Install AIX Toolbox rpms with gcc
    • Use these environment variables:

       export PORTABLE=1
      export CC=gcc
      export AR="ar -X64"
      export EXTRA_ARFLAGS=-X64
      export EXTRA_CFLAGS=-maix64
      export EXTRA_CXXFLAGS=-maix64
      export PLATFORM_LDFLAGS="-static-libstdc++ -static-libgcc"
      export LIBPATH=/opt/freeware/lib
      export JAVA_HOME=/usr/java8_64
      export PATH=/opt/freeware/bin:$PATH
  • Solaris Sparc

    • Install GCC 4.8.2 and higher.
    • Use these environment variables:

       export CC=gcc
      export EXTRA_CFLAGS=-m64
      export EXTRA_CXXFLAGS=-m64
      export EXTRA_LDFLAGS=-m64
      export PORTABLE=1
      export PLATFORM_LDFLAGS="-static-libstdc++ -static-libgcc"

rocksdb编译步骤——Java、Golang、mac的更多相关文章

  1. OpenSSL简单介绍及在Windows、Linux、Mac系统上的编译步骤

    OpenSSL介绍:OpenSSL是一个强大的安全套接字层password库,囊括基本的password算法.经常使用的密钥和证书封装管理功能及SSL协议.并提供丰富的应用程序供測试或其他目的使用. ...

  2. Java native代码编译步骤简书

    Java native代码编译步骤简书 目的:防止java代码反编译获取密码算法 (1)编写实现类com.godlet.PasswordAuth.java (2)编译java代码javac Passw ...

  3. mac 安装protobuf,并编译为java,c++,python

    1.下载地址:https://code.google.com/p/protobuf/downloads/list 另外,可以查看这个链接查看中文更多内容:http://www.cnblogs.com/ ...

  4. webrtc所有平台下载编译步骤详细说明

    webrtc所有平台下载编译步骤详细说明 1.安装depot tools Windows:国外下载:https://storage.googleapis.com/chrome-infra/depot_ ...

  5. 使用NppExec插件让Notepad++编译运行Java、Python

    一直希望有一个轻量级的编辑器,既可以编辑代码,也可以一键运行.后来有了NotePad++,希望可以配置配置达到目的,配Java的时候上网搜了一堆,基本上互相抄,不解决实际问题,很郁闷.后来琢磨了出来, ...

  6. 从源码(编译)安装golang 二

    h1 { margin-top: 0.6cm; margin-bottom: 0.58cm; direction: ltr; color: #000000; line-height: 200%; te ...

  7. 第一章.java&golang的区别之:闭包

    对于golang一直存有觊觎之心,但一直苦于没有下定决心去学习研究,最近开始接触golang.就我个人来说,学习golang的原动力是因为想要站在java语言之外来审视java和其它语言的区别,再就是 ...

  8. Android APK反编译步骤

    反编译步骤 1.通过Android Killer 打开apk,自动开始分析   2.分析结束后,在分析好的工程上右键->打开方式->打开文件位置     在文件夹ProjectSrc中有文 ...

  9. 通过反编译看Java String及intern内幕--费元星站长

    通过反编译看Java String及intern内幕   一.字符串问题 字符串在我们平时的编码工作中其实用的非常多,并且用起来也比较简单,所以很少有人对其做特别深入的研究.倒是面试或者笔试的时候,往 ...

随机推荐

  1. docker容器中使用pip有警告

    docker容器中使用pip有警告 /usr/local/lib/python2.7/dist-packages/requests/packages/urllib3/util/ssl_.py:334: ...

  2. Centos7.6 双网卡,修改默认路由

    centos修改默认路由 需求:服务器有两个网卡,一个是内网网卡,一个是外网网卡,但是默认的路由是内网: route -n 列出所有路由: 删除默认的路由: route del default gw ...

  3. Spring Boot 打包成的可执行 jar ,为什么不能被其他项目依赖?

    前两天被人问到这样一个问题: "松哥,为什么我的 Spring Boot 项目打包成的 jar ,被其他项目依赖之后,总是报找不到类的错误?" 大伙有这样的疑问,就是因为还没搞清楚 ...

  4. 安装Win10,ERROR_0x8007025D问题解决

    Windows10安装的时候,出现ERROR CODE:0x8007025D 大概提示为:windows 无法安装所需的文件.请确保安装所需的所有文件可用,并重新启动安装. 本人在出现这个问题的原因, ...

  5. PLT与GOT

    0x01  什么是PLT和GOT 名称: PLT : 程序链接表(PLT,Procedure Link Table) GOT : 重局偏移表(GOT, Global Offset Table) 缘由: ...

  6. 满足高密度设备存储需求 一颗ICMAXLPDDR4X 8GB就行

    通讯技术在当代无疑更新越来越快速,随着5G时代即将到来,对通讯的设备的要求也将提出更高的要求.具备AI功能的硬件设备将普及化,其智能化程度也将越来越高,同时对手机等智能移动设备的内存容量和带宽也提出了 ...

  7. 【深入浅出-JVM】(8):TLAB

    概念 TLAB(Thread Local Allocation Buffer)线程本地分配缓冲区(线程私有分配区,私有分配,公共查看),占用 Eden 区(缺省 Eden 的1%),默认开启,JVM ...

  8. 异常:带有 CLSID {} 的 COM 对象无效或未注册

    今天处理调试打印程序的时候,看到这个异常: 代码: try { string strApplyEmpno=""; string strApplyDeptCode="&qu ...

  9. [记录]python的简单协程框架(回调+时间循环+select)

    # -*- coding: utf-8 -*- # @Time : 2018/12/15 18:55 # @File : coroutine.py #一个简单的 Coroutine 框架 import ...

  10. Python入门基础(9)__面向对象编程_1

    定义一个只包含方法的类 class 类名: def 方法1(self,参数列表): pass def 方法2(self,参数列表): pass 当一个类定义之后,要使用这个类来创键对象.语法如下: 对 ...