私はdebianサーバーを持っており、peclを介して「intl」拡張機能をインストールしたいと思っています。
インストール中に「ICUライブラリとヘッダーが見つかる場所を指定してください[DEFAULT]:」と尋ねます。ここでは、DEFAULTを使用するために空のままにするなど、いくつかのオプションを試しましたが、次のエラーが発生します。
configure:error:C++ preprocessor "/ lib/cpp" failed sanity checkを参照してくださいconfig.log' for more details. ERROR:
/tmp/pear/temp/intl/configure --with-icu-dir = DEFAULT 'が失敗しました
私はphp5.3をインストールしました:make && make install。 「icu」はすでにインストールしていますが、php5.3とは異なり、apt-getを使用してインストールしました(これが重要かどうかはわかりません)。
何か案が?
Ubuntu 12.04 LTSでは、次のように動作しました:
Sudo apt-get install php5-intl
Sudo /etc/init.d/Apache2 restart
バム、警告は消えた!これが将来誰かを助けることを願っています:)
Libicu44とlibicu-devをインストールする必要があります:
apt-get install libicu44 libicu-dev
この後、peclを使用してintlをインストールできます。
./pecl install intl
Ubuntuを使用する場合の注意:
最初のパッケージlibicu44
が利用できないようです。この場合は、libicu-dev
をインストールするだけで、依存関係を調べて処理します。現在libicu42
を使用しているようです。
同じエラー:
/tmp/pear/temp/intl/collator/collator_class.c:92: error: duplicate 'static'
しかし、intlネイティブ拡張コメントを読んだとき、私は次のことを見ました。
Debian Squeezeユーザーは、以下を使用してintl拡張機能をインストールできます。
Sudo apt-get install php5-intl
このパッケージは私の古いUbuntu 8.04でも動作します...
G ++のインストールSudo apt-get install g++
前 Sudo ./pecl install intl
トリックをしてくれました。
これはおなじみのように聞こえることは知っていました。 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を使用しているため、問題は別の問題になるはずです。