编译 ImageMagick:找不到“libwebp”,从 Amazon Linux 2 上的源代码编译

Posted

技术标签:

【中文标题】编译 ImageMagick:找不到“libwebp”,从 Amazon Linux 2 上的源代码编译【英文标题】:Compiling ImageMagick: Cannot Find 'libwebp', compiled From Source on Amazon Linux 2 【发布时间】:2021-11-10 20:37:15 【问题描述】:

我正在尝试重新编译 ImageMagick 以启用对 php 的 webp 支持。

问题似乎是当使用./configure --with-webp=yes 编译Imagick 时,它找不到比0.4.1 更高版本的libwebp 库。 Amazon Linux 2 的存储库只能升级到版本 0.3.1。这意味着从源代码编译 libwebp,它可以工作,但 Imagick 似乎无法识别它。

所以我的问题是,如何确保 ImageMagick 可以找到并使用 libwebp 库?

步骤

要从源代码编译,我做了以下操作:

cd /var
sudo wget https://storage.googleapis.com/downloads.webmproject.org/releases/webp/libwebp-1.1.0.tar.gz
sudo tar xvzf libwebp-1.1.0.tar.gz
cd libwebp-1.1.0
sudo ./configure
sudo make && sudo make install

/sbin/ldconfig -p | grep webp 显示以下输出,其中显示 libwebp 库按预期存在于 /usr/local/lib 目录中并在 ld 配置中注册。

   libwebpdemux.so.2 (libc6,x86-64) => /usr/local/lib/libwebpdemux.so.2
   libwebpdemux.so (libc6,x86-64) => /usr/local/lib/libwebpdemux.so
   libwebp.so.7 (libc6,x86-64) => /usr/local/lib/libwebp.so.7
   libwebp.so (libc6,x86-64) => /usr/local/lib/libwebp.so

然后我尝试通过执行以下操作从源代码编译 Imagick:

cd /var
sudo wget https://imagemagick.org/download/ImageMagick.tar.gz
sudo tar xvzf ImageMagick.tar.gz
cd ImageMagick-7.1.0-7
sudo ./configure --with-webp=yes
sudo make && sudo make install
sudo ldconfig /usr/local/lib

但是,当运行 ./configure --with-webp=yes 时,我得到以下输出


...

-------------------------------------------------------------
checking for libwebp >= 0.4.1... no
checking for libwebpmux >= 0.5.0 libwebpdemux >= 0.5.0... no

checking if WMF package is complete... no
-------------------------------------------------------------

...

configure:
==============================================================================
ImageMagick 7.1.0-7 is configured as follows. Please verify that this
configuration matches your expectations.

Host system type: x86_64-pc-linux-gnu
Build system type: x86_64-pc-linux-gnu

                  Option                        Value
------------------------------------------------------------------------------
Shared libraries  --enable-shared=yes           yes
Static libraries  --enable-static=yes           yes
Build utilities   --with-utilities=yes          yes
Module support    --with-modules=no             no
GNU ld            --with-gnu-ld=yes             yes
Quantum depth     --with-quantum-depth=16       16
High Dynamic Range Imagery
                  --enable-hdri=yes             yes

Install documentation:                          yes

Memory allocation library:
  JEMalloc          --with-jemalloc=no          no
  TCMalloc          --with-tcmalloc=no          no
  UMem              --with-umem=no              no

Delegate library configuration:
  BZLIB             --with-bzlib=yes            no
  Autotrace         --with-autotrace=no         no
  DJVU              --with-djvu=yes             no
  DPS               --with-dps=yes              no
  FFTW              --with-fftw=no              no
  FLIF              --with-flif=yes             no
  FlashPIX          --with-fpx=yes              no
  FontConfig        --with-fontconfig=yes       no
  FreeType          --with-freetype=yes         no
  Ghostscript lib   --with-gslib=no             no
  Graphviz          --with-gvc=yes              no
  HEIC              --with-heic=yes             no
  JBIG              --with-jbig=yes             no
  JPEG v1           --with-jpeg=yes             yes
  JPEG XL           --with-jxl=no               no
  LCMS              --with-lcms=yes             no
  LQR               --with-lqr=yes              no
  LTDL              --with-ltdl=no              no
  LZMA              --with-lzma=yes             no
  Magick++          --with-magick-plus-plus=yes no (failed tests)
  OpenEXR           --with-openexr=yes          no
  OpenJP2           --with-openjp2=yes          no
  PANGO             --with-pango=yes            no
  PERL              --with-perl=no              no
  PNG               --with-png=yes              yes
  RAQM              --with-raqm=yes             no
  RAW               --with-raw=yes              no
  RSVG              --with-rsvg=no              no
  TIFF              --with-tiff=yes             yes
  WEBP              --with-webp=yes             no
  WMF               --with-wmf=no               no
  X11               --with-x=                   no
  XML               --with-xml=yes              no
  ZIP               --with-zip=yes              no
  ZLIB              --with-zlib=yes             yes
  ZSTD              --with-zstd=yes             no

Delegate program configuration:
  GhostPCL          None                        pcl6 (unknown)
  GhostXPS          None                        gxps (unknown)
  Ghostscript       None                        gs (9.25)

Font configuration:
  Apple fonts       --with-apple-font-dir=default
  Dejavu fonts      --with-dejavu-font-dir=default      none
  Ghostscript fonts --with-gs-font-dir=default          /share/ghostscript/fonts/
  URW-base35 fonts  --with-urw-base35-font-dir=default  none
  Windows fonts     --with-windows-font-dir=default     none

X11 configuration:
  X_CFLAGS        = 
  X_PRE_LIBS      = 
  X_LIBS          = 
  X_EXTRA_LIBS    = 

Options used to compile and link:
  PREFIX          = /usr/local
  EXEC-PREFIX     = /usr/local
  VERSION         = 7.1.0-7
  CC              = gcc
  CFLAGS          = -I/usr/include/libpng15     -fopenmp -Wall -g -O2 -mtune=haswell -fexceptions -pthread -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16
  CPPFLAGS        =  -DMAGICKCORE_HDRI_ENABLE=1 -DMAGICKCORE_QUANTUM_DEPTH=16
  PCFLAGS         = 
  DEFS            = -DHAVE_CONFIG_H
  LDFLAGS         = 
  LIBS            =    -ltiff   -ljpeg    -lpng15                           -lz       -lm    -lpthread 
  CXX             = g++
  CXXFLAGS        =  -pthread
  FEATURES        = DPC HDRI Cipher OpenMP
  DELEGATES       = jng jpeg png ps tiff zlib
==============================================================================

相关帖子:

https://github.com/rosell-dk/webp-convert/wiki/Installing-Imagick-extension-with-WebP-support https://legacy.imagemagick.org/discourse-server/viewtopic.php?t=35892 Add WebP to ImageMagick supported formats for PHP 7.3 on a WHM dedicated server https://library.roguewave.com/display/SUPPORT/How+to+compile+Imagick+PHP+extension+with+WebP+support

【问题讨论】:

»»确保 ImageMagick 可以找到并使用 libwebp 库««:您将 libwebp-1.1.0 配置为 /usr/local/,这是搜索路径中的最后一个:找到旧版本。 ..... libwebp,建议:./configure --prefix=/usr 【参考方案1】:

要找到这些库,您必须确保 pkgconfig 看到 .pc 文件 /usr/lib/pkgconfig

export PKG_CONFIG_PATH=/usr/lib/pkgconfig:$PKG_CONFIG_PATH 添加到您的.bash_profile,获取它并使用pkg-config --list-all | grep webp 进行检查。 如果找到库,请再次尝试./configure --with-webp=yes

【讨论】:

以上是关于编译 ImageMagick:找不到“libwebp”,从 Amazon Linux 2 上的源代码编译的主要内容,如果未能解决你的问题,请参考以下文章

在 Sierra(测试版)上使用 ImageMagick 时出现“找不到图像”

RMagick安装:找不到MagickWand.h

RMagick 安装:找不到 MagickWand.h

eclipse部署maven web项目到tomcat服务器时,没有将libweb.xml复制过去的解决办法

如何在 Windows 中安装 ImageMagick? [复制]

Imagemagick 将 png 转换为 jxr