Bia*_*bba 8 php macos pear pecl
我正在尝试使用PECL在我的新Mac(El Capitan 10.11.4)上安装PHP Intl扩展,但是在make
阶段期间存在链接错误.
以下是我采取的步骤:
已安装PEAR以在Mac上运行
编译并安装ICU库(版本51.2) /usr/local/lib
执行此命令:sudo pecl install intl
出现错误(见下文).我也尝试直接从PHP源代码("ext"文件夹)编译扩展,并收到相同的错误消息.
我收到以下错误:
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
Run Code Online (Sandbox Code Playgroud)
看起来像:
文件丢失(即使它知道要查找的正确ICU库版本).也许它真的找不到文件.该-L
开关和相应的开关似乎指向正确的路径/usr/local/lib
路径.
然后,还存在某种架构不匹配.所以,我跑了file libicudata.51.dylib
,它似乎是正确的架构.
这是file
重新调整的:
$ file /usr/local/lib/libicudata.51.dylib
/usr/local/lib/libicudata.51.dylib: Mach-O 64-bit dynamically linked shared library x86_64
Run Code Online (Sandbox Code Playgroud)
以前有人碰过这个吗?或者知道如何在新的Mac Book Pro(El Capitan 10.11.4)上编译PHP的Intl扩展?我希望能有一些关于下一步要看的提示,因为我在这里有点难过.
小智 0
我解决了这个问题,这是我的环境:
操作系统:El Capitan 10.11.4
PHP:php-7.0.5
icu:55.1
关键点是使用以下命令重新安装 ICU --enable-rpath
:
./configure --prefix=/opt/oss/icu --enable-release --enable-shared --enable-rpath --enable-tools
Run Code Online (Sandbox Code Playgroud)
如果你想知道为什么,请以 root 身份运行
otool -L $YOUR_ICU_PREFIX/lib/libicudata.dylib
Run Code Online (Sandbox Code Playgroud)
检查第一个库是否是绝对路径。
归档时间: |
|
查看次数: |
5689 次 |
最近记录: |