CentOS 7下编译libiconv

编译安装libiconv

cd /usr/local/src

wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz

tar xfz libiconv-1.14.tar.gz

cd libiconv-1.14

./configure --prefix=/usr/local/libiconv

make

make install

cd ..

make时遇到错误:

gcc -DHAVE_CONFIG_H -DEXEEXT=\"\" -I. -I.. -I../lib  -I../intl -DDEPENDS_ON_LIBICONV=1 -DDEPENDS_ON_LIBINTL=1   -g -O2 -c allocator.c

gcc -DHAVE_CONFIG_H -DEXEEXT=\"\" -I. -I.. -I../lib  -I../intl -DDEPENDS_ON_LIBICONV=1 -DDEPENDS_ON_LIBINTL=1   -g -O2 -c areadlink.c

gcc -DHAVE_CONFIG_H -DEXEEXT=\"\" -I. -I.. -I../lib  -I../intl -DDEPENDS_ON_LIBICONV=1 -DDEPENDS_ON_LIBINTL=1   -g -O2 -c careadlinkat.c

gcc -DHAVE_CONFIG_H -DEXEEXT=\"\" -I. -I.. -I../lib  -I../intl -DDEPENDS_ON_LIBICONV=1 -DDEPENDS_ON_LIBINTL=1   -g -O2 -c malloca.c

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:1: 错误:‘gets’未声明(不在函数内)

_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");

^

ke[2]: *** [progname.o] 错误 1

▽ake[2]: 离开目录“/usr/local/src/libiconv-1.14/srclib”

make[1]: *** [all] 错误 2

make[1]: 离开目录“/usr/local/src/libiconv-1.14/srclib”

make: *** [all] 错误 2

解决办法1:

编辑stdio.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

解决办法2:

cd srclib/

sed -ir -e ‘/gets is a security/d‘ ./stdio.in.h

cd ../

make


重新make即可!

时间: 2025-01-17 00:52:14

CentOS 7下编译libiconv的相关文章

CentOS 6下编译安装MySQL 5.6

一:卸载旧版本 使用下面的命令检查是否安装有MySQL Server rpm -qa | grep mysql 有的话通过下面的命令来卸载掉 rpm -e mysql //普通删除模式 rpm -e --nodeps mysql // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除 二:安装MySQL 安装编译代码需要的包 yum -y install make gcc-c++ cmake bison-devel ncurses-devel 下载MyS

CentOS Linux下编译安装MySQL

本文参考张宴的Nginx 0.8.x + PHP 5.2.13(FastCGI)搭建胜过Apache十倍的Web服务器(第6版)[原创]完成.所有操作命令都在CentOS 6.4 64位操作系统下实践成功. 1.移除CentOS自带的mysql yum remove mysql mysql-server compat-mysql51 rpm -e --nodeps mysql-libs-5.1.* 2.安装编译依赖包 yum -y install cmake yum -y install bis

在centos环境下编译安装myrocksdb

rocksdb(https://rocksdb.org.cn/)是脸书(facebook)公司开源的一个key-value存储引擎,基于leveldb开发.rocksdb使用的是LSM存储引擎,纯c++编写.rocksdb具有很好的读写性能.但是rocksdb的实际操作需要很好的阅读rocksdb api文档,很多实现要自己编写代码来执行,还要考虑诸如线程安全等问题.Myrocks是rocksdb和mysql结合的结果,它将mysql的innodb引擎替换为rocksdb引擎,剥离实际操作底层r

CentOS 7下编译Boost_1_57_0

之前对库的理解太肤浅(现在也仍很肤浅),导致走了挺多的弯路,现记录以备后查. 现在可以从Boost官网下载到最新的Boost源代码boost_1_57_0.tar.gz. 现将步骤记录如下: 1. 解压(非root) $tar -xf boost_1_57_0.tar.gz 2. 执行bootstrap.sh(非root) $cd boost_1_57_0 $./bootstrap.sh 3. 编译(非root):./b2 参数 这时没有说编译安装,是因为在非root账户下,编译安装过程中产生的

Centos 7下编译安装Apache

(1)下载apr.apr-util.httpd源码包 百度云下载地址:https://pan.baidu.com/s/1HyW_9XTLhhhf5j_IuNCQsQ 提取码:pg4d (2)安装编译工具及插件 yum -y install gcc gcc-c++ make pcre-devel expat-devel perl openssl (3)解压apr.apr-util.httpd源码包,将apr和apr-util移动到httpd/srclib/目录下,去掉版本号 (4)进入httpd目

CentOS 7下编译FreeSWITCH 1.6

安装背景: 已经最小化安装CentOS 7. 准备工作: 挂载安装光盘,配置yum本地化安装,配置方法可以参考http://www.cnblogs.com/yoyotl/p/4877439.html. ① 安装net-tools 执行yum install net-tools进行安装. Net-tools 包含一系列程序,构成了 Linux 网络的基础. 包含arp, dnsdomainname, domainname, hostname, ifconfig, nameif, netstat,

在Centos 7下编译openwrt+njit-client

首先要有一个centos7 step1:更新系统的源: yum install update 但是发现官方的源好像被墙了,于是自己又去换源,找163的源换.具体的操作最后的链接. 可是换完源之后发现163的源只支持到centos6......但是就泪崩了.于是又把源换了回来. 再更新源,居然就可以了. step2:再添加GIT核 1 yum install git-core git应该是用来添加github的开源代码用的. step3:安装必要的编译工具,或者说编译所需要的依赖文件. yum i

centos 6下编译安装rrdtool-1.4.5.tar.gz 过不去

#tar zxvf rrdtool-1.4.5.tar.gz #cd rrdtool-1.4.5 #./configure --prefix=/usr/local/rrdtool 出现:                configure: error: Please fix the library issues listed above and try again.解决方法:yum -y install zlib libpng freetype libart_lgpl libart_lgpl-d

CentOS下编译CPP文件时报错[undefined reference to `__gxx_personality_v0' collect2: ld]的解决办法

在CentOS环境下编译CPP时报出 undefined reference to `__gxx_personality_v0' collect2: ld 以上错误,调查了一下,加上参数[-lstdc++]就可解决 例: gcc -lstdc++ a.cpp 参考自http://mlq.blog78.fc2.com/?mode=m&no=14 CentOS下编译CPP文件时报错[undefined reference to `__gxx_personality_v0' collect2: ld]