Rocky Linux 9 编译安装 libjpeg-turbo

By | 最新修改:2024-08-17

前言

本文专注于在 Rocky Linux 9 操作系统上通过源代码编译安装 libjpeg-turbo。

Libjpeg-turbo 是一种 JPEG 格式图像的编解码器。

安装它是为了以后安装 LibWebP 和 LibGD 提供较新版本的动态库,从而在一定程度上增强功能和使用程序更少 Bug以及更健壮。

Libjpeg-turbo logo


Libjpeg-turbo 的优势

  1. Libjpeg-turbo 比传统的 libjpeg 在压缩和解压上的速度快上近两倍。
  2. Libjpeg-turbo 既实现了传统的 libjpeg API,也实现了功能较弱但更简单的 TurboJPEG API。
  3. Libjpeg-turbo 还具有色彩空间扩展。
  4. 几乎常见的指令集支持,无论是 ARM、x86、x86-64 都具可用性。

    运行在以上指令集的平台,它的速度是 libjpeg 的 2 到 6 倍。

  5. 它还支持市场上几乎所有常用操作系统平台,它为32位和64位的流行 Linux 发行版、Windows、OSX,以及 iOS 提供二进制支持。

  6. 它提供了与商业/闭源加速 JPEG 编解码器类似的性能。

以上资料提供者:

https://sourceforge.net/projects/libjpeg-turbo/


安装依赖

dnf install -y gcc make cmake wget autoconf automake libtool fontconfig

确定版本并获取源代码

如果因为网络问题不能下载源码包,那么请参考本站的其他文章: 如何在境内加速 GitHub 资源的下载以及克隆

# https://sourceforge.net/projects/libjpeg-turbo/files/
LIBJPEG_VER=3.0.2

cd /tmp
if [ ! -f libjpeg-turbo-${LIBJPEG_VER}.tar.gz ]; then
    code=0
    URL="https://github.com/libjpeg-turbo/libjpeg-turbo/releases/download/${LIBJPEG_VER}/libjpeg-turbo-${LIBJPEG_VER}.tar.gz"
    wget $URL
    code=$?

    while [ $code -gt 0 ]; do
        # 若上次获取失败,则此次重来
        # 直到获取成功
        rm -f libjpeg-turbo-${LIBJPEG_VER}.tar.gz*
        wget $URL
        code=$?
    done
fi

给源码压缩包解压缩

if [ -d libjpeg-turbo-${LIBJPEG_VER} ]; then
    rm -rf libjpeg-turbo-${LIBJPEG_VER}
fi

tar zxvf libjpeg-turbo-${LIBJPEG_VER}.tar.gz

进入解压后得到的目录并进行编译

cd libjpeg-turbo-${LIBJPEG_VER}

mkdir build && cd build
cmake ..
make
make install
# libjpeg-turbo 将安装到 /opt/libjpeg-turbo

进行余下的安装操作

if [ -d /opt/libjpeg-turbo ]; then
    ln -sf /opt/libjpeg-turbo/lib64/lib*.so* /usr/local/lib64/
    ln -sf /opt/libjpeg-turbo/lib64/lib*.so* /usr/local/lib/
    ln -sf /opt/libjpeg-turbo/lib64/libjpeg.so /usr/local/lib64/
    echo 'export PATH="${PATH}:/opt/libjpeg-turbo/bin"' >>/etc/profile
    echo 'export LD_LIBRARY_PATH="/opt/libjpeg-turbo/lib64:${LD_LIBRARY_PATH}"' \
    >>/etc/profile
    ln -sf /opt/libjpeg-turbo/include/* /usr/include/
    source /etc/profile
else
    echo "+++++++++++++++++++++++++++++++++LibJpeg compiled failed."
fi

校验动态库版本

readelf -d /opt/libjpeg-turbo/lib64/libjpeg.so
readelf -d /usr/local/lib64/libjpeg.so

如果出来的结果类似于以下,则表示 libjpeg-turbo 安装成功:

[root@rockylinux-9 build]# readelf -d /usr/local/lib64/libjpeg.so
Dynamic section at offset 0xb0c58 contains 28 entries:
  Tag        Type                         Name/Value
 0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]
 0x000000000000000e (SONAME)             Library soname: [libjpeg.so.62]
 0x000000000000000f (RPATH)              Library rpath: [/opt/libjpeg-turbo/lib64]
...

后记

做个总结。

本文实现了一个完整的手把手地在 Rocky Linux 9 下通过源码编译安装最新版本 libjpeg-turbo 的过程。

而且还简要地说明了 libjpeg-turbo 的各种优势,并且在部分特性上与 libjpeg 进行比较。

实现相近的功能,并且还具有出色的性能和平台兼容性。



程序知路

鉴于本人的相关知识储备以及能力有限,本博客的观点和描述如有错漏或是有考虑不周到的地方还请多多包涵,欢迎互相探讨,一起学习,共同进步。

本文章可以转载,但是需要说明来源出处!

本文使用的部分图片来源于网上,若是侵权,请与本文作者联系删除: admin@icxzl.com