23

我有一个 Debian 服务器,我想intl通过pecl.

在安装过程中它问我:

“指定 ICU 库和头文件的位置 [DEFAULT]:”

在这里,我一直在尝试几个选项,包括将其留空以使用 DEFAULT,但我收到以下错误:

配置:错误:C++ 预处理器“/lib/cpp”未通过完整性检查,有关详细信息,请参阅“config.log”。错误:'/tmp/pear/temp/intl/configure --with-icu-dir=DEFAULT' 失败

我已经安装了 php5.3:make && make install。我已经安装了icu,但与 php5.3 不同的是,它是安装的apt-get(我不知道这是否重要)。

任何想法?

4

5 回答 5

41

在 Ubuntu 12.04 LTS 上,以下对我有用:

sudo apt-get install php5-intl
sudo /etc/init.d/apache2 restart

Bam,警告消失了!希望这对将来的人有所帮助:)

于 2013-06-10T23:53:15.007 回答
20

你需要安装 libicu44 和 libicu-dev:

apt-get install libicu44 libicu-dev

在此之后,您可以使用 pecl 安装 intl:

./pecl install intl

如果使用 Ubuntu,请注意:

l 看起来第一个包libicu44不可用,在这种情况下,只需安装libicu-dev它,它将通过依赖项并为您处理它。好像是libicu42现在用的。

于 2012-08-21T07:43:35.363 回答
11

同样的错误:

/tmp/pear/temp/intl/collator/collator_class.c:92: error: duplicate 'static'

但是在阅读国际原生扩展评论时,我看到了:

Debian Squeeze 用户可以安装 intl 扩展:

sudo apt-get install php5-intl

第一条评论

该软件包甚至适用于我的旧 Ubuntu 8.04...

于 2011-07-19T20:14:06.420 回答
2

sudo apt-get install g++ 之前安装 g++sudo ./pecl install intl对我有用。

于 2013-05-16T12:43:02.030 回答
1

我知道这听起来很熟悉;我在 2008 年 5 月遇到了同样的问题,在这里讨论:http: //old.nabble.com/ubuntu-7.10-pecl-install-intl-p17140873.html

Ed Batutis 解释说,如果您在“/usr/bin/icu-config”中有 icu-config,则“/usr”是正确答案;如果它在其他地方,请相应地调整。

然而,这对我没有帮助。我在这里为我描述了解决方案:http: //darrendev.blogspot.com/2008/05/install-php-pecl-intl-module-for-ubuntu.html ...这基本上是为了定义 PHP_SETUP_ICU 宏。那应该是在 5.2.4 中添加的,所以当您使用 php 5.3 时,您的问题应该是其他问题。

于 2011-08-10T12:27:05.293 回答