一、编译环境描述
二、安装包地址
libwebp
https://github.com/webmproject/libwebp/archive/refs/tags/v1.2.0.tar.gz
libde265
https://github.com/strukturag/libde265/releases/download/v1.0.7/libde265-1.0.7.tar.gz
x265
https://github.com/videolan/x265/archive/refs/tags/3.4.tar.gz
libheif
https://github.com/strukturag/libheif/releases/download/v1.12.0/libheif-1.12.0.tar.gz
libvips
https://github.com/libvips/libvips/releases/download/v8.12.0/vips-8.12.0.tar.gz
三、编译环境安装步骤
安装libwebp
1.安装jpeg tiff png扩展
yum -y install libjpeg-devel libpng-devel libtiff-devel
2.安装编译libwebp时依赖
yum -y install gcc make
3.解压包,开始安装libwebp-1.2.0
tar xf v1.2.0.tar.gz
cd libwebp-1.2.0
编译参数描述:
--prefix=/usr/lib64 # 安装的目录
--enable-libwebpmux # 开启libwebpmux
--enable-libwebpdemux # 开启libwebpdemux
--enable-libwebpdecoder # 开启libwebpdecoder
--enable-libwebpextras # 开启libwebpextras
--enable-static # 静态库
./autogen.sh
./configure \
--prefix=/usr/lib64 \
--enable-libwebpmux \
--enable-libwebpdemux \
--enable-libwebpdecoder \
--enable-libwebpextras \
--enable-static
configure后的截图 (可看到需要enable的扩展都是yes)
# configure没问题就可以开始安装了
make && make install
# 查找pkgconfig(编译安装的libwebp*.pc位置不是系统默认里面)
也可在编译时指定用 PKG_CONFIG_PATH=/usr/lib64/lib/pkgconfig 指定
# 查看pkgconfig存在
find /usr/lib64 -name pkgconfig
cp /usr/lib64/lib/pkgconfig/libwebp*.pc /usr/lib64/pkgconfig/
安装libde265
1.解压包,开始安装libde265
tar -xvf libde265-1.0.7.tar.gz
cd libde265-1.0.7
./autogen.sh
./configure \
--disable-dec265 \
--disable-sherlock265 \
--enable-log-info \
--enable-static \
--prefix=/usr/lib64
make && make install
# 查找pkgconfig(编译安装的libde265.pc位置不是系统默认里面)
也可在编译时指定用 PKG_CONFIG_PATH=/usr/lib64/lib/pkgconfig 指定
cp /usr/lib64/lib/pkgconfig/libde265.pc /usr/lib64/pkgconfig/
安装x265
1.解压包,开始安装x265
tar -xvf 3.4.tar.gz
cd x265-3.4/build/linux
2.安装编译依赖
yum -y install cmake
3.执行编译
cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX=/usr/lib64 ../../source
4.安装
make && make install
# 查找pkgconfig(编译安装的x265.pc位置不是系统默认里面)
也可在编译时指定用 PKG_CONFIG_PATH=/usr/lib64/lib/pkgconfig 指定
cp /usr/lib64/lib/pkgconfig/x265.pc /usr/lib64/pkgconfig/
安装libheif
1.解压包,开始安装libheif
tar xf libheif-1.12.0.tar.gz
cd libheif-1.12.0
2.安装依赖
yum -y install gcc-c++
3.执行编译
./autogen.sh
CPPFLAGS="-I/usr/local/include" LIBS="-ldl" ./configure --prefix=/usr/lib64
4.安装
make && make install
# 查找pkgconfig(编译安装的libheif.pc位置不是系统默认里面)
也可在编译时指定用 PKG_CONFIG_PATH=/usr/lib64/lib/pkgconfig 指定
cp /usr/lib64/lib/pkgconfig/libheif.pc /usr/lib64/pkgconfig/
安装libvips
1.安装libvips编译时依赖
yum -y install expat-devel gcc-c++ gtk-doc gobject-introspection-devel
2.解压包,开始安装
tar xf vips-8.12.0.tar.gz
cd vips-8.12.0
3. 编译安装(可看到需要的扩展是yes)
./autogen.sh
./configure --prefix=/usr/lib64
make && make install
四、编译过程错误
1、./autogen.sh: line 2: exec: autoreconf: not found
Can't exec "aclocal": No such file or directory at /usr/share/autoconf/Autom4te/FileUtils.pm line 326.
autoreconf: failed to run aclocal: No such file or directory
yum -y install gobject-introspection-devel
2、error: newly created file is older than distributed files! Check your system clock
yum -y install ntpdate
ntpdate ntp1.aliyun.com
3.configure: error: Could not find the Expat library
yum -y install expat-devel
4.../../libtool: line 1765: g++: command not found
yum -y install gcc-c++
5./autogen.sh: line 28: gtkdocize: command not found
yum -y install gtk-doc
五、编译后so文件路径
六、镜像信息(将编译的so文件,打入到镜像)
镜像信息:centos:7.2.1511
FROM centos:7.2.1511
ADD libwebp.tar.gz /usr/lib64/
ADD libde265.tar.gz /usr/lib64/
ADD libx265.tar.gz /usr/lib64/
ADD libheif.tar.gz /usr/lib64/
ADD libvips.tar.gz /usr/lib64/
RUN yum -y install pango-devel libjpeg-devel libpng-devel libtiff-devel \
&& yum clean all \
&& echo '/usr/lib64/libwebp' >> /etc/ld.so.conf \
&& echo '/usr/lib64/libde265' >> /etc/ld.so.conf \
&& echo '/usr/lib64/libx265' >> /etc/ld.so.conf \
&& echo '/usr/lib64/libheif' >> /etc/ld.so.conf \
&& echo '/usr/lib64/libvips' >> /etc/ld.so.conf \
&& ldconfig \
&& mv /usr/lib64/libvips/vips* /usr/bin/