MacOS Catalina安装PHP 8.2报错:iconv does not support errno求助
解决PHP 8.2在MacOS Catalina上编译时的iconv errno问题
问题背景
在2015款MacBook Pro的Catalina系统中,通过Homebrew编译安装PHP 8.2时出现报错:
configure: error: iconv does not support errno
尽管已安装libiconv,但编译过程未正确引用Homebrew提供的GNU版本,而是使用了系统自带的不支持errno的iconv实现。
解决方案
先确保libiconv为Homebrew最新版本:
brew reinstall libiconv配置环境变量,强制编译时优先使用Homebrew的libiconv:
export LDFLAGS="-L/usr/local/opt/libiconv/lib" export CPPFLAGS="-I/usr/local/opt/libiconv/include" export PKG_CONFIG_PATH="/usr/local/opt/libiconv/lib/pkgconfig"重新编译安装PHP 8.2:
brew install php@8.2 --build-from-source若之前安装失败残留了缓存,先清理再安装:
brew cleanup php LDFLAGS="-L/usr/local/opt/libiconv/lib" CPPFLAGS="-I/usr/local/opt/libiconv/include" PKG_CONFIG_PATH="/usr/local/opt/libiconv/lib/pkgconfig" brew install php@8.2 --build-from-source若上述方法无效,手动修改PHP的编译配置:
- 打开Homebrew的PHP配方编辑界面:
brew edit php@8.2 - 在
configure参数列表中添加--with-iconv=/usr/local/opt/libiconv,保存退出后重新执行安装命令。
- 打开Homebrew的PHP配方编辑界面:
原理说明
MacOS Catalina自带的iconv属于苹果自研实现,不支持errno相关特性;而Homebrew安装的是GNU libiconv,完全符合PHP编译所需的依赖要求。通过环境变量或编译参数指定使用GNU版本,即可解决该报错。
内容的提问来源于stack exchange,提问作者Aris
相关产品推荐
相关产品推荐

