在OS X 10.6.6上安装intl:无效的库(可能不是PHP库)intl.so

时间:2011-03-15 13:55:57

标签: php macos icu intl

我正在尝试使用随附的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 install

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

  

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

直接构建

我下载了当前版本的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位包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个bugfix版本会破坏兼容性。

任何想法?

更新2011-03-16:

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

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

1 个答案:

答案 0 :(得分:0)

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

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