Php iconv拡張モジュールを手動でコンパイルして、glibcではなくlibiconvを使用しようとしています。 libiconvをダウンロードし、./configure --prefix=/usr/local
、make
、Sudo make install
で構成しました。
手動コンパイルに関する次の指示を見つけました: https://stackoverflow.com/questions/4743080/how-can-i-force-php-to-use-the-libiconv-version-of-iconv-instead- of-the-centos-in/4851065#4851065
Phpバージョン5.6.10があり、phpbrewを使用してインストールされているため、ステップ3から始めました。
ステップ#5(make
)で、次のエラーが発生しました。
/usr/bin/ld: ext/standard/.libs/image.o: undefined reference to symbol 'uncompress'
//lib/x86_64-linux-gnu/libz.so.1: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make: *** [sapi/cli/php] Error 1
これを修正する方法を知っていますか?どうもありがとう。
これを解決するには、Makefile
を編集し、-lz
にEXTRA_LIBS
を追加しました。
Makefile
ディレクトリでphp
を探します。EXTRA_LIBS
を検索します。-lz
フラグを追加します。不足しているライブラリへのリンク。 -lz
リンク to zlib .
このソリューションは、スタックオーバーフローの kevinf's answer to ストレンジリンクエラー:DSO missing fromコマンドライン に基づいています。