CentOS 6.5/7.x libiconv库的安装和使用:
1.libiconv包的下载路径
包的下载页面http://www.gnu.org/software/libiconv/
2.编译安装libiconv库
tar zxvf libiconv-1.14.tar.gz cd libiconv-1.14 ./configure --prefix=/usr/local make make install
在/usr/local/lib/目录下,拷备需要的库文件libcharset.so.1, libiconv.so.2。
注意:如果是CentOS 7.x,可能会遇到如下问题:
./stdio.h:1010:1: 错误: ‘gets’未声明(不在函数内)
或者英文:
./stdio.h:1010:1: error: ‘gets’ undeclared here (not in a function)
解决办法:
在源码目录中:
cd srclib sed -i -e '/gets is a security/d' ./stdio.in.h
然后再次编译即可正常通过。更多参考:
源码编译安装 libiconv-1.14 报:./stdio.h:1010:1: error: ‘gets’ undeclared here (not in a function) [
centos7 编译libiconv ./stdio.h:1010:1: 错误: ‘gets’未声明(不在函数内)
3.在makefile文件中使用-liconv调用libiconv动态库文件时,若出现“error while loading sharedlibraries: libiconv.so.2”错误,解决方法为:
updatedb locate libiconv.so.2
发现该库已经安装,位置在/usr/local/lib/libiconv.so.2。既然已经安装,为什么提示找不到?继续下一步排查。
strace ./program
将打印出所有program启动时调用的文件及程序名称,在输出的信息中,发现查找库libiconv.so.2的路径是/lib目录和/usr/lib这两个目录。
好了,问题找到了,将/usr/local/lib下面该库链接到/usr/lib下面即可
ln -s /usr/local/lib/libiconv.so.2 /usr/lib/libiconv.so.2
ldconfig
至此,解决该问题。
文章的脚注信息由WordPress的wp-posturl插件自动生成