4

我正在尝试使用随附的 PHP 版本(v5.3.3)在我全新安装的 OS X 10.6.6 上安装 PHP 扩展 intl。

我知道扩展需要 ICU,所以我用自制软件安装了它。我安装的 ICU 版本是 4.4.1,存储在/usr/local/Cellar/icu4c/4.4.1.

我尝试了两种不同的方法来安装 intl 扩展:

pecl 安装

pecl 向我询问 ICU 前缀,即/usr/local/Cellar/icu4c/4.4.1. configure运行没有问题,但make中止:

/private/var/tmp/apache_mod_php/apache_mod_php-53~1/Build/tmp/pear/temp/intl/collat​​or/collat​​or_class.c:107:错误:重复“静态”制作:* [collat​​or/collat​​or_class.lo] 错误1 错误:“制作”失败

直接构建

我下载了当前版本的 PHP (v5.3.5),然后ext/intl通过运行安装了 intl 扩展:

phpize && 
configure --enable-intl --with-icu-dir=/usr/local/Cellar/icu4c/4.4.1 && 
make && 
make test && 
sudo make install

这似乎奏效了;我在 PHP 扩展目录中有一个扩展,但没有收到任何错误消息。

该文件告诉我:Mach-O 64-bit bundle x86_64

但是,当我在 中加载扩展时php.ini,我收到了以下消息:

PHP 警告:PHP 启动:无效库(可能不是 PHP 库)'/usr/lib/php/extensions/no-debug-non-zts-20090626/intl.so' 在第 0 行的未知

我不知道为什么会这样。我猜这是因为扩展是从 PHP v5.3.5 安装的并且我使用的是 v5.3.3,但我无法想象 2 个错误修复版本会破坏兼容性。

有任何想法吗?

2011-03-16 更新:

我找到了解决办法!当我在 configure 中明确设置-m64标志(告诉 gcc 生成 64 位代码)时,扩展会正确加载:

CFLAGS=-m64 CPPFLAGS=-m64 CCASFLAGS=-m64 ./configure

4

1 回答 1

0

也许有点晚了,但这里有一篇关于如何使用系统工具将 intl 添加到 OS X Lion 的帖子:

http://mansion.im/2011/php-with-intl-and-gettext-on-osx-lion/

于 2011-12-24T10:56:07.517 回答