I am trying to install the PHP Intl extension on my new Mac (El Capitan 10.11.4) using PECL, but there is a linking error during the make
stage.
Here are the steps I took:
Installed PEAR to run on Mac
Compiled and installed the ICU library (version 51.2) into
/usr/local/lib
Ran this command:
sudo pecl install intl
and there was an error (see below). I also tried compiling the extension directly from the PHP source code ("ext" folder) and received the same error message.
I am getting the following error:
ld: file not found: libicudata.51.dylib for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [intl.la] Error 1
ERROR: 'make' failed
It looks like:
The file is missing (even though it knows the correct ICU library version to look for). Maybe it truly can't find the file. The
-L
switch and related switches appear to point to the correct path/usr/local/lib
path.Then, there is also some sort of architecture mismatch. So, I ran
file libicudata.51.dylib
and it appears to be the right architecture.
Here is what file
retuned:
$ file /usr/local/lib/libicudata.51.dylib
/usr/local/lib/libicudata.51.dylib: Mach-O 64-bit dynamically linked shared library x86_64
Has anyone run across this before? Or know how to compile PHP's Intl extension on the new Mac Book Pro (El Capitan 10.11.4)? I a hoping for some hints on where to look next, because I am a bit stumped here.
int main(){return 0;}
) withcc -licudata -o test test.c
? – Substantializetest.c
program compiles without any error messages. – TrinDYLD_LIBRARY_PATH
before runningpecl
? – Moke