无法加载动态库“imagick.so” - dlopen(imagick.so, 0x0009):在平面命名空间“_AcquireAlignedMemory”中找不到符号

Unable to load dynamic library 'imagick.so' - dlopen(imagick.so, 0x0009): symbol not found in flat namespace '_AcquireAlignedMemory'

提问人:Jaroslav Klimčík 提问时间:7/14/2023 最后编辑:hakreJaroslav Klimčík 更新时间:7/16/2023 访问量:294

问:

我已经很绝望了,我知道有很多类似的问题,但没有解决方案帮助我,所以我会尝试一个新问题。

我正在尝试激活Imagick,但出现此错误

Warning: PHP Startup: Unable to load dynamic library 'imagick.so' (tried: /opt/homebrew/lib/php/pecl/20210902/imagick.so (dlopen(/opt/homebrew/lib/php/pecl/20210902/imagick.so, 0x0009): symbol not found in flat namespace '_AcquireAlignedMemory'), /opt/homebrew/lib/php/pecl/20210902/imagick.so.so (dlopen(/opt/homebrew/lib/php/pecl/20210902/imagick.so.so, 0x0009): tried: '/opt/homebrew/lib/php/pecl/20210902/imagick.so.so' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/opt/homebrew/lib/php/pecl/20210902/imagick.so.so' (no such file), '/opt/homebrew/lib/php/pecl/20210902/imagick.so.so' (no such file))) in Unknown on line 0

我按照这个顺序安装了它:

brew install imagemagick
brew install pkg-config
pecl install imagick

同样在php.ini中,我启用了它:

extension="imagick.so"

Imagick 已正确安装:

convert --version                                                                                                                                  127 ✘  11:39:56
Version: ImageMagick 7.1.1-12 Q16-HDRI aarch64 21239 https://imagemagick.org
Copyright: (C) 1999 ImageMagick Studio LLC
License: https://imagemagick.org/script/license.php
Features: Cipher DPC HDRI Modules OpenMP(5.0)
Delegates (built-in): bzlib fontconfig freetype gslib heic jng jp2 jpeg jxl lcms lqr ltdl lzma openexr png ps raw tiff webp xml zlib
Compiler: gcc (4.2)

并正确放置:imagick.so

-rw-r--r--  1 jklimcik  admin  494967 Jul 14 10:08 /opt/homebrew/lib/php/pecl/20210902/imagick.so

我错过了什么或出了什么问题?我正在使用 MacOS 13.4、Apple M1 Pro。我也在使用 Laravel Valet,但我认为这与这个问题无关。

php laravel 自制软件 imagick pecl

评论

0赞 hakre 7/14/2023
实际的错误消息是: dlopen(/opt/homebrew/lib/php/pecl/20210902/imagick.so, 0x0009): symbol not found in flat namespace '_AcquireAlignedMemory' -- 你错过了吗?
0赞 Jaroslav Klimčík 7/14/2023
@hakre对不起,但这是什么意思?
0赞 hakre 7/14/2023
缺少符号。根据我(有限的)理解,这可能有多种原因,一个是 .so 文件与 php 版本不兼容,另一个是缺少库(在 ld 路径中找不到)。也许您应该编辑您的问题并添加一个表格,其中包含您迄今为止尝试过的故障排除和分析,以便它变得更加明显,您可以找到问题以及到目前为止排除的问题。仅供参考:我没有 MacOS 13.4、Apple M1 Pro,所以我无法复制。您可能希望分享 PHP 版本以及您如何安装/获取 PHP。
0赞 hakre 7/14/2023
另请参阅此非凡的评论/问答:stackoverflow.com/questions/35006614/...
1赞 apokryfos 7/14/2023
除了 imagemagick 本身之外,您还需要安装 imagemagick PHP 扩展。该扩展不会自动安装

答:

1赞 Jaroslav Klimčík 7/16/2023 #1

所以我在几个小时后解决了它,多亏了@hakre的戳。问题是我迁移到 M1 芯片。由于它具有不同的架构(手臂),因此导致了很多问题。最后,我不得不删除与自制软件相关的所有内容,并从头开始安装所有内容。我把它留在这里,因为如果他们有类似的问题,它可能对其他人有用。