bzip2
1.1、bzip2简介
是什么 ?:Burrows–Wheeler-based data compression library and utilities with high compression ratio.
开发语言:C
文件扩展名:.bz2
MediaType:application/x-bzip2
官方主页:
源码仓库:
1.2、通过包管理器安装bzip2
操作系统包管理器安装命令
Allvcpkg
vcpkg install bzip2
vcpkg install bzip2:x64-osx
vcpkg install bzip2:x64-linux
vcpkg install bzip2:x64-windows
Windowsscoopscoop install bzip2
WindowsChocolateychoco install -y bzip2
macOSHomeBrewbrew install bzip2
GNU/LinuxLinuxBrewbrew install bzip2
aptsudo apt-get install -y bzip2
CentOSyumsudo yum install -y bzip2
dnfsudo dnf install -y bzip2
openSUSEzyppersudo zypper install -y bzip2
Alpine Linuxapksudo apk add bzip2

Arch Linux

ArcoLinux

Manjaro Linux

pacmansudo pacman -Syyu --noconfirm
sudo pacman -S    --noconfirm bzip2
Gentoo LinuxPortagesudo emerge bzip2
1.3、通过源码安装bzip2 

step1、安装依赖

下载时cURL
解压时targzip
编译时makegcc
运行时glibc ( libc.sold-linux-x86-64.so )

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

curl -LO https://sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz

step3、使用tar解压bzip2源码包

tar vxf bzip2-1.0.8.tar.gz

step4、进入bzip2-1.0.8目录,并查看它的内容

step5、使用make进行编译

该工程包含2Makefile文件:

Makefile用来编译静态库可执行文件

Makefile-libbz2_so用来编译.so格式的动态库

make命令的使用格式如下:

make [option]... [VAR=VALUE]... [TARGET]...
所属MakefileVARVALUE示例说明
Makefile
Makefile-libbz2_so
CCgcc |  clang指定C编译器命令
Makefile
Makefile-libbz2_so
CFLAGS-O2 -v指定C编译器命令的参数
Makefile
Makefile-libbz2_so
CPPcpp指定C预处理器命令
Makefile
Makefile-libbz2_so
CPPFLAGS-I<includeDir>指定C预处理器命令的参数
Makefile
Makefile-libbz2_so
LD指定C链接器命令
Makefile
Makefile-libbz2_so
LDFLAGS-L<libDir>指定C链接器命令的参数
MakefileAR指定C静态库打包器命令
MakefileRANLIB指定C静态库索引表更新命令
MakefilePREFIX/usr/local指定安装目录

示例:

CPUCoreCount=$(grep -c processor /proc/cpuinfo)
jobCount=$((CPUCoreCount + 1))

make -j${jobCount} CFLAGS="-O2 -v"

step6、安装

sudo make install
1.4、bzip2中包含的命令
1.5、bzip2中包含的头文件
1.6、bzip2中包含的库文件
  • libbz2.{a | so | dylib}
1.7、通过Android NDK交叉编译bzip2

step1、与1.3、通过源码安装bzip2的前4个步骤一样。

step2、安装Android NDKversion >= r19

step3、使用curl命令下载我已经写好的编译脚本:

curl -LO https://raw.githubusercontent.com/leleliu008/auto/master/ndk/build-with-ndk-bzip2.sh

step4、运行build-with-ndk-bzip2.sh脚本

sh build-with-ndk-bzip2.sh

生成的产物在output目录下: