libjpeg-turbo
1.1、libjpeg-turbo简介
是什么 ?:a JPEG image codec that uses SIMD instructions (MMX, SSE2, AVX2, NEON, AltiVec) to accelerate baseline JPEG compression and decompression on x86, x86-64, ARM, and PowerPC systems
开发语言:C++
官方主页:https://www.libjpeg-turbo.org
源码仓库:https://github.com/libjpeg-turbo/libjpeg-turbo

libjpeg-turbo是对libjpegfork。然后在此基础上进行了优化,使得运行效率大幅提升。所以,现在大多数使用者倾向于使用libjpeg-turbo而不是libjpeg, 很多的包管理器中也只有libjpeg-turbo,而没有提供libjpeg

1.2、通过包管理器安装libjpeg-turbo
操作系统包管理器安装命令
Allvcpkg
vcpkg install libjpeg-turbo
vcpkg install libjpeg-turbo:x64-osx
vcpkg install libjpeg-turbo:x64-linux
vcpkg install libjpeg-turbo:x64-windows
macOSHomeBrewbrew install libjpeg-turbo
GNU/LinuxLinuxBrewbrew install libjpeg-turbo
aptsudo apt-get install -y libjpeg-turbo8 libjpeg-turbo8-dev
CentOSyumsudo yum install -y libjpeg-turbo libjpeg-turbo-devel
dnfsudo dnf install -y libjpeg-turbo libjpeg-turbo-devel
openSUSEzyppersudo zypper install -y libjpeg-turbo
Alpine Linuxapksudo apk add libjpeg-turbo libjpeg-turbo-dev

Arch Linux

ArcoLinux

Manjaro Linux

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

step1、安装依赖

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

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

curl -LO https://downloads.sourceforge.net/libjpeg-turbo/libjpeg-turbo-2.0.2.tar.gz

step3、使用tar解压源码包

tar vxf libjpeg-turbo-2.0.2.tar.gz

step4、进入libjpeg-turbo-2.0.2目录,并查看它的内容

step5、使用cmake配置编译参数

这里常用的cmake的变量如下表:

变量类型默认值说明
CMAKE_C_COMPILERFILEPATH/usr/bin/cc指定C编译器命令
CMAKE_C_FLAGSSTRING设置C编译器命令的参数
CMAKE_CXX_COMPILERFILEPATH/usr/bin/c++指定C++编译器命令
CMAKE_CXX_FLAGSSTRING设置C++编译器命令的参数
CMAKE_INSTALL_PREFIXPATH/usr/local/设置安装目录
CMAKE_BUILD_TYPESTRINGDebug
Debug 编译器设置-g参数
Release 编译器设置-O3 -DNDEBUG参数
RelWithDebInfo 编译器设置-O2 -g -DNDEBUG参数
MinSizeRel 编译器设置-Os -DNDEBUG参数

示例:

cmake \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DCMAKE_BUILD_TYPE=RELEASE \
    -DENABLE_STATIC=FALSE \
    -DCMAKE_INSTALL_DOCDIR=/usr/share/doc/libjpeg-turbo-2.0.2 \
    -DCMAKE_INSTALL_DEFAULT_LIBDIR=lib \
    -G "Unix Makefiles" \
    -Wno-dev \
    -S . \
    -B build

说明:

-G "Unix Makefiles"表示配置后会产生makeMakefile文件。

6、使用make编译并安装:

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

make --directory=build -j${jobCount} && sudo make --directory=build install
1.4、libjpeg-turbo中包含的命令
1.5、libjpeg-turbo中包含的头文件
1.6、libjpeg-turbo中包含的库文件
  • libjpeg.{a | so | dylib}
  • libturbojpeg.{a | so | dylib}