当我尝试运行以下命令时
pecl install imagick
Run Code Online (Sandbox Code Playgroud)
然后安装结束:
imagemagick/7.0.11-9/lib -L/usr/local/Cellar/imagemagick/7.0.11-9/lib -lMagickWand-7.Q16HDRI -lMagickCore-7.Q16HDRI
cc ${wl}-flat_namespace ${wl}-undefined ${wl}suppress -o .libs/imagick.so -bundle .libs/imagick_file.o .libs/imagick_class.o .libs/imagickdraw_class.o .libs/imagickpixel_class.o .libs/imagickpixeliterator_class.o .libs/imagick_helpers.o .libs/imagick.o .libs/imagickkernel_class.o .libs/shim_im6_to_im7.o -lgomp -L/usr/local/Cellar/imagemagick/7.0.11-9/lib /usr/local/Cellar/imagemagick/7.0.11-9/lib/libMagickWand-7.Q16HDRI.dylib -L/usr/local/Cellar/little-cms2/2.12/lib -L/usr/local/opt/freetype/lib -L/usr/local/Cellar/glib/2.68.1/lib -L/usr/local/opt/gettext/lib /usr/local/Cellar/imagemagick/7.0.11-9/lib/libMagickCore-7.Q16HDRI.dylib -Wl,-rpath -Wl,/usr/local/Cellar/imagemagick/7.0.11-9/lib
ld: library not found for -lgomp
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [imagick.la] Error 1
ERROR: `make' failed
Run Code Online (Sandbox Code Playgroud)
原因似乎是 imagick 的最后一个版本(3.5.0)的编译有需要这个库的更改。无法安装较低版本,因为它们与 PHP 8.0 不兼容。
知道如何在 macOS 上消除此错误吗?
截至 2021 年 7 月 22 日,版本 3.5.1 在pecl通道中稳定,可用于为 PHP 7 和 PHP 8 编译 imagick。
pecl install imagick
Run Code Online (Sandbox Code Playgroud)
一般命令不会再失败了
gomp由于对 MAC编译器的支持缺失/损坏,3.5 版目前无法在 MAC 上编译gcc。
最好的解决办法是安装版本 3.4.4
pecl install imagick-3.4.4
Run Code Online (Sandbox Code Playgroud)
更多信息请点击此处