编译 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 时出现“找不到图像”
eclipse部署maven web项目到tomcat服务器时,没有将libweb.xml复制过去的解决办法