build zstd for current host

step1、安装依赖

所有时Terminal + Shell + GNU CoreUtils
下载时cURL
解压时tar + gzip
编译时cmakeninjagcc / GCC | Clang / LLVM
运行时glibc ( libc.solibpthread.sold-linux-x86-64.so )

step2、使用curl命令下载zstd源码包 (

curl -LO https://github.com/facebook/zstd/releases/download/v1.4.5/zstd-1.4.5.tar.gz

step3、使用tar解压zstd源码包

tar vxf zstd-1.4.5.tar.gz

step4、进入zstd-1.4.5目录

cd zstd-1.4.5

step5、查看zstd-1.4.5目录中的内容

step6、使用cmake命令配置编译参数

cmake [option]... -D<变量>=<值> -S <sourceDIR> -B <buildDIR>
本软件特有的变量类型默认值说明
ZSTD_BUILD_TESTSBOOLOFF是否编译测试代码
ZSTD_BUILD_CONTRIBBOOLOFF是否编译贡献的代码
ZSTD_BUILD_PROGRAMSBOOLON是否生成可执行程序
ZSTD_BUILD_STATICBOOLON是否生成静态库
ZSTD_BUILD_SHAREDBOOLON是否生成动态库
ZSTD_MULTITHREAD_SUPPORTBOOLON是否支持多线程,根据是否支持pthread决定
ZSTD_LEGACY_SUPPORTBOOLOFF是否支持过旧的功能
ZSTD_PROGRAMS_LINK_SHAREDBOOLOFF是否让zstd命令程序链接动态库
ZSTD_ZLIB_SUPPORTBOOLOFF是否使用zlib
ZLIB_INCLUDE_DIRPATH指定zlib头文件所在目录
ZLIB_LIBRARYFILEPATH指定libz.{a | so | dylib}的路径
ZSTD_LZMA_SUPPORTBOOLOFF是否使用liblzma
LIBLZMA_INCLUDE_DIRPATH指定liblzma头文件所在目录
LIBLZMA_LIBRARYFILEPATH指定liblzma.{a | so | dylib}的路径
ZSTD_LZ4_SUPPORTBOOLOFF是否使用lz4liblz4
LIBLZ4_INCLUDE_DIRPATH指定liblz4头文件所在目录
LIBLZ4_LIBRARYFILEPATH指定liblz4.{a | so | dylib}的路径

示例:

cmake \
    -DCMAKE_BUILD_TYPE=Release \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -G Ninja \
    -Wno-dev \
    -S build/cmake \
    -B build.d

step7、使用cmake命令进行编译

cmake --build build.d

step8、使用cmake命令进行安装

cmake --install build.d