[en] Fix bug Error "dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.64.dylib" with php7.1

I have [email protected], [email protected] in my Mac. After update brew, my [email protected] got this error
➜  ~ php -v
dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.64.dylib
  Referenced from: /usr/local/opt/[email protected]/bin/php
  Reason: image not found
[1]    38924 abort      php -v
Then check icu4c info
 ~ brew info icu4c
icu4c: stable 67.1 (bottled) [keg-only]
C/C++ and Java libraries for Unicode and globalization
/usr/local/Cellar/icu4c/67.1 (257 files, 69.3MB)
  Poured from bottle on 2020-07-02 at 14:40:28
As you can see, PHP reference to icu4c version 64 /usr/local/opt/icu4c/lib/libicui18n.64.dylib But icu4c installed in the brew is version 67 /usr/local/Cellar/icu4c/67.1
icu4c is C/C++ and Java libraries for Unicode and globalization. When you install the brew packages, it'll download .tar.gz file then uncompress and compile it. In compile process, brew will link package to icu4c version available in brew
Problem is, brew has deprecated [email protected] so I have to install [email protected] from an external source and its link to icu4c v.64 by default. So solution is to install icu4c version 64 and use brew switch to switch to suitable icu4c version

# version 62.1:
brew reinstall https://raw.githubusercontent.com/Homebrew/homebrew-core/575eb4bbef683551e19f329f60456b13a558132f/Formula/icu4c.rb
# version 64.2:
brew reinstall https://raw.githubusercontent.com/Homebrew/homebrew-core/a806a621ed3722fb580a58000fb274a2f2d86a6d/Formula/icu4c.rb
# check avaible icu4c versions on your machine
brew info icu4c
# switch version. brew switch <package> <version>
brew switch icu4c 64.2

Ref: dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.62.dylib error running php afeter installing node with brew on Mac - php
Last edited:

Facebook Comments