php5.4.25 build でエラー(iconv周り) - suVeneのアレ

php5.4.25 build でエラー(iconv周り)

今更ながら VPS を上位プランへ移行してて、
ついでに phpenv で php5.4.25 インストールしようとしたら
以下のエラー。

[7686]# phpenv install 5.4.25
[Info]: Loaded apc Plugin.
[Info]: Loaded pyrus Plugin.
[Info]: Loaded xdebug Plugin.
[Info]: Loaded xhprof Plugin.
[Info]: php.ini-production gets used as php.ini
[Info]: Building 5.4.25 into /opt/phpenv/versions/5.4.25
[Downloading]: http://php.net/distributions/php-5.4.25.tar.bz2
[Preparing]: /tmp/php-build/source/5.4.25
[Compiling]: /tmp/php-build/source/5.4.25

-----------------
|  BUILD ERROR  |
-----------------

Here are the last 10 lines from the log:

-----------------------------------------
/tmp/php-build/source/5.4.25/ext/iconv/iconv.c:2636: undefined reference to `libiconv'
/tmp/php-build/source/5.4.25/ext/iconv/iconv.c:2558: undefined reference to `libiconv'
ext/iconv/.libs/iconv.o: In function `php_iconv_stream_filter_ctor':
/tmp/php-build/source/5.4.25/ext/iconv/iconv.c:2512: undefined reference to `libiconv_open'
ext/xmlrpc/libxmlrpc/.libs/encodings.o: In function `convert':
/tmp/php-build/source/5.4.25/ext/xmlrpc/libxmlrpc/encodings.c:73: undefined reference to `libiconv_open'
/tmp/php-build/source/5.4.25/ext/xmlrpc/libxmlrpc/encodings.c:81: undefined reference to `libiconv'
/tmp/php-build/source/5.4.25/ext/xmlrpc/libxmlrpc/encodings.c:101: undefined reference to `libiconv_close'
collect2: ld returned 1 exit status
make: *** [sapi/cli/php] エラー 1

な感じで、iconv 周りでエラー。
http://ftp.gnu.org/pub/gnu/libiconv/http://www2d.biglobe.ne.jp/~msyk/software/libiconv-patch.html から適当にダウンロードして make && make install して終わり。

wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.13.tar.gz
wget http://www2d.biglobe.ne.jp/~msyk/software/libiconv/libiconv-1.13-ja-1.patch.gz
tar zxvf libiconv-1.13.tar.gz
cd ./libiconv-1.13.tar.gz
gzip -dc ../libiconv-1.13-ja-1.patch.gz | patch -p1
make
make install

これで問題なし。

と思ったんだが、エラー。ここから以外とハマった。
なんか色々試して、結局何が有効な対応だったのかよくわからん。

試したものは以下。

ref.

--with-iconv ⇛ --with-iconv=shared,/usr/local
ln -s /usr/local/lib/libiconv.so.2.5.0 /usr/local/lib64/libiconv.so
ln -s /usr/local/lib/libiconv.so.2.5.0 /usr/local/lib64/libiconv.so.2

以下は試してみたが、上手く行かなかったので破棄。

ref. macにphpenv,php-build,apacheで開発環境を構築したのでメモ – ロックとチュウーハイとこりんがるな日々

cd /tmp/php-build/source/5.4.25/ext/iconv/
cp iconv.c iconv.c.bak
vim iconv.c
:%s/iconv_open/libiconv_open/g
:%s/iconv_close/libiconv_close/g

他にも色々試したが、configu か build 時に lib64 を見に行ってるのに、libiconv がないってことなのか
正道はどうすりゃいいのか結局よくわからん。

スポンサーリンク
スポンサーリンク

コメントをどうぞ

メールアドレスが公開されることはありません。