昨天朋友開發一個PHP程序,make的時候提示錯誤undefined reference to `libiconv_open',這是什么問題呢?其實是缺少libiconv庫的原因。
解決的辦法網站很多:
解決方法一:下載安裝libiconv,并安裝
$ wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
$ tar xzf libiconv-1.14.tar.gz
$ ./configure --prefix=/soft/lib/libiconv-1.14
wget http://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz/download
$ tar zxf php-5.4.x.tar.gz
$ cd php-5.4.x-src/
$ ./configure --prefix=/soft/php/php-5.4.x --enable-fpm --with-iconv=/soft/lib/libiconv-1.14
解決方法二:舍棄libiconv模塊
1.編譯php的時候去除--enable-static選項,即可
2.libiconv編譯的時候指定為靜態
./configure --prefix=/usr/local/libiconv --enable-static ....
所以綜上不管你是否靜態編譯php在編譯libiconv的時候加上參數--enable-static,libiconv 默認是動態加載,php編譯時如果加enable-static就會出現問題,這樣就一勞永逸了。