编译安装php之安装libiconv-1.14.tar.gz出错解决方法
一、实验报错如下:
make[2]: Entering directory `/home/chen/tools/libiconv-1.14/srclib' make[3]: Entering directory `/home/chen/tools/libiconv-1.14' make[3]: Nothing to be done for `am--refresh'. make[3]: Leaving directory `/home/chen/tools/libiconv-1.14' gcc -DHAVE_CONFIG_H -DEXEEXT=\"\" -I. -I.. -I../lib -I../intl -DDEPENDS_ON_LIBICONV=1 -DDEPENDS_ON_LIBINTL=1 -g -O2 -c progname.c In file included from progname.c:26:0: ./stdio.h:1010:2: error: invalid preprocessing directive #_GL_WARN_ON_USE _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); make[2]: *** [progname.o] Error 1font make[2]: Leaving directory `/home/chen/tools/libiconv-1.14/srclib' make[1]: *** [all] Error 2 make[1]: Leaving directory `/home/chen/tools/libiconv-1.14/srclib' make: *** [all] Error 2
二、解决方法
编辑/home/chen/tools/libiconv-1.14/srclib下的stdio.in.h,找到如下代码:
_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
改为如下代码:
#if defined(__GLIBC__) && !defined(__UCLIBC__) && !__GLIBC_PREREQ(2, 16)
_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
#endif
#endif
注意:上面为两个#endif保存退出,重新编译。
make && make install