Ubuntu14.04_64编译libiconv出问题 ./stdio.h:1010:1: error: 'gets' undeclared here (not in a function)

本文介绍了解决在Ubuntu14.04环境下编译libiconv-1.14过程中遇到的一个编译错误的方法。错误出现在stdio.h文件中,提示'gets'未声明。通过修改stdio.in.h文件中的特定代码行,可以成功解决问题并完成编译。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、错误现象

环境 Ubuntu14.04 64位 编译 libiconv-1.14 出错

错误现象:

In file included from progname.c:26:0:

./stdio.h:1010:1: error: ‘gets’ undeclared here (not in a function)
 _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
 ^
make[2]: *** [progname.o] 错误 1
make[2]:正在离开目录 `/home/bupt/miao/box/soft/libiconv-1.14/srclib'
make[1]: *** [all] 错误 2
make[1]:正在离开目录 `/home/bupt/miao/box/soft/libiconv-1.14/srclib'

make: *** [all] 错误 2

二、解决方法

在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

重新编译libiconv就OK了.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值