昨天朋友开发一个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就会出现问题,这样就一劳永逸了。