macOS Big Sur系统使用pecl安装imagick提示library not found报错
问题原因
-lgomp是GCC的OpenMP并行运算运行库,macOS系统默认自带的clang编译器未集成该库。你通过brew安装的imagemagick默认开启了OpenMP支持,因此编译imagick扩展时会自动加入OpenMP相关编译链接参数,在链接阶段找不到对应库就会抛出该错误。
解决方案
方案1:重装imagemagick关闭OpenMP支持(操作最简单,推荐优先尝试)
执行以下命令即可:
- 卸载现有imagemagick:
brew uninstall imagemagick - 编译安装无OpenMP支持的imagemagick:
brew install imagemagick --without-openmp - 重新安装imagick扩展:
sudo pecl install imagick
方案2:保留OpenMP支持手动编译安装
如果需要保留imagemagick的OpenMP并行运算能力,可以选择手动编译扩展:
- 先安装GCC编译器(自带libgomp库):
brew install gcc - 查看安装的GCC版本号,执行命令后记录输出的版本号后缀(如输出
gcc-13则版本号为13):ls /usr/local/bin/gcc-* - 下载对应版本imagick源码包:
pecl download imagick-3.5.0 - 解压并进入源码目录:
tar zxvf imagick-3.5.0.tgz && cd imagick-3.5.0 - 执行phpize生成编译配置:
phpize - 配置编译参数,将下方命令中的
gcc-13和g++-13替换为你实际安装的版本:
./configure CC=gcc-13 CXX=g++-13 --with-imagick=/usr/local
- 编译并安装扩展:
make && sudo make install - 编辑你的php.ini配置文件,加入以下行:
extension=imagick.so - 重启PHP服务后执行
php -m | grep imagick验证安装结果即可。
注意事项
如果使用苹果M1/M2系列芯片的Mac设备,brew的默认安装路径为/opt/homebrew,以上涉及路径的命令需要对应调整。
内容的提问来源于stack exchange,提问作者Norlihazmey Ghazali
相关产品推荐
相关产品推荐

