【问题标题】:PHP extension imagick 3.5.0 for PHP 8 : installation on macos failsPHP 8 的 PHP 扩展 imagick 3.5.0:在 macos 上安装失败
【发布时间】:2021-09-13 14:46:34
【问题描述】:

当我尝试运行以下命令时

pecl install imagick

然后安装结束:

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

原因似乎是 imagick 的最新版本(3.5.0)的编译有需要这个库的更改。无法安装较低版本,因为它们与 PHP 8.0 不兼容。

知道如何在 macos 上消除此错误吗?

【问题讨论】:

    标签: php macos imagick


    【解决方案1】:

    2021 年 7 月 22 日更新

    截至 2021 年 7 月 22 日,版本 3.5.1 在pecl 频道中稳定,可用于为 PHP 7 和 PHP 8 编译 imagick。

    pecl install imagick
    

    通用命令不会再失败

    旧答案

    版本 3.5 目前无法在 MAC 上编译,因为 MAC gcc 编译器对 gomp 的支持缺失/损坏。

    最好的解决办法是安装 3.4.4 版

    pecl install imagick-3.4.4
    

    更多信息here

    【讨论】:

    • 您好,非常感谢。但是根据changelog,只有imagick 3.5兼容PHP 8.0...
    • 用新的稳定版3.5.1更新,而不是RC
    【解决方案2】:

    通过手动安装扩展程序可以解决此问题。唯一的问题是它在安装完成后不会出现在 pecl 安装的扩展中,并且无法从 pecl 中卸载。尽管如此,我还是提供了我在这里找到的答案:

    运行以下命令

    cd path/to/installation/is/going/to/be/made
    pecl bundle imagick
    cd imagick
    mv config.m4 config.m4.bak
    wget https://raw.githubusercontent.com/yyongpil/imagick/2a2b924b9d25c8ef4a677b72e6868fbc7c9e01cc/config.m4
    

    通过命令行来解释前面的进程命令行:

    1. 将自己放在要进行安装的文件夹中
    2. 下载并展开源文件
    3. 进入源文件夹
    4. 出于安全目的备份原始config.m4文件
    5. 下载修改后的config.m4 文件以修复gomp 问题,如here 所述

    最后只需继续手动安装过程

    phpize
    ./configuration
    make
    sudo make install
    

    在此之后,您应该可以使用最新的 PHP 扩展 imagick。对于PHP 8.0imagick 3.5.0so 文件位于/usr/local/lib/php/pecl/20200930/imagick.so

    【讨论】:

    【解决方案3】:

    新版本已被标记并包含已修复的构建配置!您可以使用以下命令安装它:

    pecl install imagick-3.5.1
    

    (没有它现在应该工作的版本)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-25
      • 2013-10-23
      • 2017-06-24
      • 2011-03-03
      • 1970-01-01
      • 2014-08-29
      • 1970-01-01
      相关资源
      最近更新 更多