电脑疯子技术论坛|电脑极客社区

微信扫一扫 分享朋友圈

已有 1873 人浏览分享

CentOS 7下编译libiconv

[复制链接]
1873 0

编译安装libiconv

   
  1. cd /usr/local/src
  2.     wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
  3.     tar xfz libiconv-1.14.tar.gz
  4.     cd libiconv-1.14
  5.     ./configure --prefix=/usr/local/libiconv
  6.     make
  7.     make install
  8.     cd ..
复制代码

make时遇到错误:


   
  1. gcc -DHAVE_CONFIG_H -DEXEEXT="" -I. -I.. -I../lib  -I../intl -DDEPENDS_ON_LIBICONV=1 -DDEPENDS_ON_LIBINTL=1   -g -O2 -c allocator.c
  2.     gcc -DHAVE_CONFIG_H -DEXEEXT="" -I. -I.. -I../lib  -I../intl -DDEPENDS_ON_LIBICONV=1 -DDEPENDS_ON_LIBINTL=1   -g -O2 -c areadlink.c
  3.     gcc -DHAVE_CONFIG_H -DEXEEXT="" -I. -I.. -I../lib  -I../intl -DDEPENDS_ON_LIBICONV=1 -DDEPENDS_ON_LIBINTL=1   -g -O2 -c careadlinkat.c
  4.     gcc -DHAVE_CONFIG_H -DEXEEXT="" -I. -I.. -I../lib  -I../intl -DDEPENDS_ON_LIBICONV=1 -DDEPENDS_ON_LIBINTL=1   -g -O2 -c malloca.c
  5.     gcc -DHAVE_CONFIG_H -DEXEEXT="" -I. -I.. -I../lib  -I../intl -DDEPENDS_ON_LIBICONV=1 -DDEPENDS_ON_LIBINTL=1   -g -O2 -c progname.c
  6.     In file included from progname.c:26:0:
  7.     ./stdio.h:1010:1: 错误:‘gets’未声明(不在函数内)
  8.      _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
  9.      ^
  10.       ke[2]: *** [progname.o] 错误 1
  11.     ▽ake[2]: 离开目录“/usr/local/src/libiconv-1.14/srclib”
  12.     make[1]: *** [all] 错误 2
  13.     make[1]: 离开目录“/usr/local/src/libiconv-1.14/srclib”
  14.     make: *** [all] 错误 2
复制代码


解决办法1:

   
  1. 编辑stdio.h文件,将 _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");字段部分内容改为如下:
  2. #if defined(__GLIBC__) && !defined(__UCLIBC__) && !__GLIBC_PREREQ(2, 16)
  3. _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
  4. #endif
  5. #endif
复制代码


解决办法2:

   
  1. cd srclib/
  2.     sed -ir -e '/gets is a security/d' ./stdio.in.h
  3.     cd ../
  4.     make
复制代码



重新make即可!


您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

关注

0

粉丝

9021

主题
精彩推荐
热门资讯
网友晒图
图文推荐

Powered by Pcgho! X3.4

© 2008-2022 Pcgho Inc.