我使用自制(Mojave)安装节点,之后php停止工作,如果我尝试运行php -v,我会得到这个错误:
php -v
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.62.dylib
Referenced from: /usr/local/bin/php
Reason: image not found
我尝试卸载node和icu4c,但问题仍然存在
我使用自制(Mojave)安装节点,之后php停止工作,如果我尝试运行php -v,我会得到这个错误:
php -v
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.62.dylib
Referenced from: /usr/local/bin/php
Reason: image not found
我尝试卸载node和icu4c,但问题仍然存在
当前回答
为了降级,我不得不从源代码(MacOS Mojave)重新编译
$ wget https://ssl.icu-project.org/files/icu4c/62.1/icu4c-62_1-src.tgz
$ tar xvfz icu4c-62_1-src.tgz
$ cd icu/sources
$ ./configure
$ make
$ make install
其他回答
我通过更新所有R包来解决int:
update.packages(checkBuilt = TRUE, ask = FALSE)
在我的情况下,酿造更新icu4c到版本67.1,所以我的php7.1不能工作。 重新安装icu4c就可以了。
参考:https://devhoi.com/threads/error-dyld-library-not-loaded-usr-local-opt-icu4c-lib-libicui18n-64-dylib-with-php7-1.26/
与其安装旧版本的icu4c,让旧的(预编译的)php可以链接到它,不如重新编译旧的php以链接到最新的库。
brew uninstall php@7.2
brew install --build-from-source php@7.2
这将构建php并将其链接到更新的库。我发现重新安装不太管用;当目标文件夹已经存在时,新的安装阻塞。
我还为我的环境做了brew link -force php@7.2。
在安装php 7.3后也得到这个错误。我已经解决了升级旧的php版本(5.6和7.0,不是从官方回购)。
维护者根据当前的icu4c编译了新的php版本。
在我的例子中,PHP 7从0.31升级到0.33,问题得到了解决。
为了降级,我不得不从源代码(MacOS Mojave)重新编译
$ wget https://ssl.icu-project.org/files/icu4c/62.1/icu4c-62_1-src.tgz
$ tar xvfz icu4c-62_1-src.tgz
$ cd icu/sources
$ ./configure
$ make
$ make install