准备工作
进入源码包目录
[root@localhost ~]# cd /usr/local/src
下载libiconv
[root@localhost ~]# wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
解压文件包
[root@localhost src]# tar -zvxf libiconv-1.14.tar.gz
切换至libiconv主目录下
[root@localhost src]# cd libiconv-1.14/
预处理,指定路径
[root@localhost libiconv-1.14]# ./configure --prefix=/usr/local/libiconv
报错处理
编译
[root@localhost libiconv-1.14]# make
这里出现一个报错
提示在gets不在函数内,错误发生在/usr/local/src/libiconv-1.14/srclib下
那么进入报错的目录找到stdio.in.h文件
[root@localhost libiconv-1.14]# cd /usr/local/src/libiconv-1.14/srclib
打开stdio.in.h 文件,找到"gets is a security hole - use fgets instead"字段
[root@localhost srclib]# vim stdio.in.h
进入后按shift键和:进入末行模式输入:gets is a security hole - use fgets instead回车
按i在gets前后分别插入
#if defined(__GLIBC__) && !defined(__UCLIBC__) && !__GLIBC_PREREQ(2, 16)
#endif
wq保存退出
返回libiconv主目录
[root@localhost srclib]# cd /usr/local/src/libiconv-1.14/
执行make,并输出返回值校验配置是否正确
[root@localhost libiconv-1.14]# make |echo $?
0
ok,安装
[root@localhost libiconv-1.14]# make install