M1 Mac安装SQLite扩展后PHP无法运行,遇Brew及依赖库错误求助
解决M1 Mac安装SQLite扩展后PHP依赖libavif库的报错问题
报错信息
dyld[58991]: Library not loaded: /opt/homebrew/opt/libavif/lib/libavif.15.dylib Referenced from: <87C1A268-34E4-396F-8BBC-D5591064E333> /opt/homebrew/Cellar/gd/2.3.3_5/lib/libgd.3.dylib Reason: tried: '/lib/libavif.15.dylib' (no such file), '/libavif.15.dylib' (no such file), '/opt/homebrew/opt/libavif/lib/libavif.15.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/opt/homebrew/opt/libavif/lib/libavif.15.dylib' (no such file), '/opt/homebrew/opt/libavif/lib/libavif.15.dylib' (no such file), '/usr/local/lib/libavif.15.dylib'可为 SELECT /create延长 Des` Imp西^开心Ultimate file, but is an incompatible architecture (have 'x86_64', need 'arm64')), '/usr/lib/libavif.15.dylib' (no such file, not in dyld cache), '/lib/libavif.15.dylib' (no such file), '/libavif.15.dylib' (no such file), '/opt/homebrew/Cellar/libavif/1.0.1/lib/libavif.15.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OS/opt/homebrew/Cellar/libavif/1.0.1/lib/libavif.15.dylib' (no such file), '/opt/homebrew/Cellar/libavif/1.0.1/lib/libavif.15.dylib' (no such file), '/usr/local/lib/libavif.15.dylib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64')), '/usr/lib/libavif.15.dylib' (no such file, not in dyld cache)
问题分析
报错核心是libgd库依赖的libavif.15.dylib不存在或架构不兼容:
- M1 Mac为arm64架构,
/usr/local/lib下的libavif是x86_64版本,无法兼容 - Homebrew中的libavif版本更新后,旧的依赖链接路径失效
解决方案
按以下步骤依次执行:
重装arm64版本的libavif
确保使用M1原生Homebrew(路径为/opt/homebrew),执行重装命令:brew reinstall libavif修复libgd的依赖链接
重新安装libgd,让它重新关联正确的libavif库:brew reinstall gd验证依赖路径是否正确
检查libgd的依赖项,确认libavif路径指向正确:otool -L /opt/homebrew/Cellar/gd/2.3.3_5/lib/libgd.3.dylib正常输出中,libavif的路径应该是
/opt/homebrew/opt/libavif/lib/libavif.xx.dylib(xx为当前安装的版本号)重装PHP及SQLite扩展
如果上述步骤后仍报错,重新安装PHP和SQLite扩展:# 若使用pecl管理扩展 pecl uninstall sqlite pecl install sqlite # 若使用Homebrew安装的PHP,直接重装PHP brew reinstall php清理dyld缓存
最后刷新系统动态链接缓存:sudo killall -HUP dyld
内容的提问来源于stack exchange,提问作者Clément Talleu
相关产品推荐
相关产品推荐

