Windows系统编译步骤
-
创建一个本地的文件夹,用于存放接下来需要配置的所有安装环境,我使用的是C:/c-space这个文件夹,安装Visual Studio 17 2022和cmake相关环境
-
安装gflags库,从github.com/gflags/gfla… 网站上下载最新的源码,通过
mkdir target与cd target进入到target文件夹,通过cmake -G "Visual Studio 17 2022" -A x64 ..构建,打开gflags.sln生成解决方案,最后的静态库在C:/c-space/gflags-2.2.2/target/lib/Release/gflags_static.lib中 -
安装snappy库,从github.com/google/snap… 网站上下载最新的源码,通过
mkdir build然后cd build进入到build文件夹,通过cmake -G "Visual Studio 17 2022" -A x64 -DCMAKE_GENERATOR_PLATFORM=x64 -DSNAPPY_BUILD_TESTS=OFF -DSNAPPY_BUILD_BENCHMARKS=OFF ..构建,打开Snappy.sln生成解决方案,最后的静态库在C:/c-space/snappy-1.1.10/build/Release/snappy.lib中 -
安装LZ4库,从github.com/lz4/lz4/rel… 网站上下载最新的源码,在
build文件夹的VS2022文件夹中,已经有对应的lz4.sln可以直接生成解决方案,最后的静态库在C:/c-space/lz4-1.9.4/build/VS2022/bin/x64_Release/liblz4_static.lib中 -
安装Zlib库,从
https://github.com/madler/zlib/releases网站上下载最新的源码,通过mkdir build然后cd build进入到build文件夹,通过cmake -G "Visual Studio 17 2022" -A x64 ..构建,打开zlib.sln生成解决方案,最后的静态库在C:/c-space/zlib-1.3.1/build/Release/zlibstatic.lib中 -
下载rocksdb源码,修改
thirdparty.inc文件中的内容,与我们之前的配置相符:
set(GFLAGS_HOME C:/c-space/gflags-2.2.2)
set(GFLAGS_INCLUDE C:/c-space/gflags-2.2.2/target/include)
set(GFLAGS_LIB_DEBUG C:/c-space/gflags-2.2.2/target/lib/Debug/gflags_static_debug.lib)
set(GFLAGS_LIB_RELEASE C:/c-space/gflags-2.2.2/target/lib/Release/gflags_static.lib)
set(SNAPPY_HOME C:/c-space/snappy-1.1.10)
set(SNAPPY_INCLUDE C:/c-space/snappy-1.1.10;C:/c-space/snappy-1.1.10/build)
set(SNAPPY_LIB_DEBUG C:/c-space/snappy-1.1.10/build/Debug/snappy.lib)
set(SNAPPY_LIB_RELEASE C:/c-space/snappy-1.1.10/build/Release/snappy.lib)
set(LZ4_HOME C:/c-space/lz4-1.9.4)
set(LZ4_INCLUDE C:/c-space/lz4-1.9.4/lib)
set(LZ4_LIB_DEBUG C:/c-space/lz4-1.9.4/build/VS2022/bin/x64_Debug/liblz4_static.lib)
set(LZ4_LIB_RELEASE C:/c-space/lz4-1.9.4/build/VS2022/bin/x64_Release/liblz4_static.lib)
set(ZLIB_HOME C:/c-space/zlib-1.3.1)
set(ZLIB_INCLUDE C:/c-space/zlib-1.3.1;C:/c-space/zlib-1.3.1/build)
set(ZLIB_LIB_DEBUG C:/c-space/zlib-1.3.1/build/Debug/zlibstaticd.lib)
set(ZLIB_LIB_RELEASE C:/c-space/zlib-1.3.1/build/Release/zlibstatic.lib)
set(ZSTD_HOME C:/c-space/zstd-1.5.5)
set(ZSTD_INCLUDE C:/c-space/zstd-1.5.5/lib)
set(ZSTD_LIB_DEBUG C:/c-space/zstd-1.5.5/build/VS2010/bin/x64_Debug/libzstd_static.lib)
set(ZSTD_LIB_RELEASE C:/c-space/zstd-1.5.5/build/VS2010/bin/x64_Release/libzstd_static.lib)
除此之外,还可以配置Jemalloc
- 在rocksdb源代码中,通过
mkdir build然后cd build进入到build文件夹,通过cmake -G "Visual Studio 17 2022" -A x64 -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_STANDARD=20 -DJNI=1 -DGFLAGS=1 -DSNAPPY=1 -DLZ4=1 -DZLIB=1 -DZSTD=1 -DXPRESS=1 ..构建,打开rocksdb.sln生成解决方案,最后的动态库在C:\c-space\rocksdb-8.10.0\build\Release\rocksdb-shared.dll中
Linux编译步骤
用Ubuntu,几步搞定:
sudo apt-get install libgflags-dev
sudo apt-get install zlib1g-dev
sudo apt-get install libbz2-dev
sudo apt-get install liblz4-dev
sudo apt-get install libzstd-dev
make shared_lib
对应的动态库在源码同一文件夹中的librocksdb.so文件中
macOS编译步骤
只需要brew install rocksdb即可
对应的动态库在/opt/homebrew/lib/librocksdb.dylib中