Linux下手工编译libiconv库的小问题

简介: Ubuntu Linux 手工编译 libiconv 库报错,记录一下~

我的电脑是 Ubuntu 14.04 LTS, 自己手工编译 php5.6, 打开 ZEND_EXTRA_LIBS='-liconv' 时, 发现没有安装 libiconv, 也就是编码转换的库, 所以百度该库的安装方法, 如下:

下载:

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

解压:

$ tar -zxvf libiconv-1.14.tar.gz
$ cd libiconv-1.14.1

安装:

$ ./configure --prefix=/usr/local
$ make
# make install

不过我make的时候出现了一个问题:

n 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] Error 1
make[2]: Leaving directory \`/home/freeman/Downloads/libiconv-1.14_2/srclib'
make[1]: *** [all] Error 2
make[1]: Leaving directory \`/home/freeman/Downloads/libiconv-1.14_2/srclib'
make: *** [all] Error 2

原因未明, 应该是软件的bug吧, 后来百度找到了 解决方法, 整理如下~

切换到srclib目录下:

$ cd srclib

修改stdio.in.h文件:

$ gedit 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, 改完是这个样子滴~别忘了保存~

#if defined(__GLIBC__) && !defined(__UCLIBC__) && !__GLIBC_PREREQ(2, 16)
 _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
#endif
#endif

保存, make 就可以了, make install 完别忘了

# ldconfig

记下来, 下次就不会忘记了~


文章来源于本人博客,发布于 2015-07-11,原文链接:https://imlht.com/archives/62/

目录
相关文章
|
文字识别 Python
|
网络协议 测试技术 网络安全
|
存储 移动开发 数据可视化
Seurat - 聚类教程 (1)
Seurat - 聚类教程 (1)
|
Ubuntu Windows 数据安全/隐私保护
|
存储 算法 Java
24-一步一图带你理清G1垃圾回收流程
G1的垃圾回收流程主要是从新生代回收开始,新生代回收与并发标记再到混合回收,接下来我们就先来说第一个新生代回收。
1166 0
|
存储 算法
手把手学会DFS (递归入门)
DFS的思想,经典题目的讲解,手把手入门✨✨
917 0
手把手学会DFS (递归入门)
|
iOS开发 MacOS
想把iPad作为扩展屏,却发现macOS monterey随航功能不见了
想把iPad作为扩展屏,却发现macOS monterey随航功能不见了
4309 1
想把iPad作为扩展屏,却发现macOS monterey随航功能不见了
|
机器学习/深度学习 移动开发 资源调度
【YOLOv8改进 - 注意力机制】S2Attention : 整合空间位移和分割注意力
YOLOv8专栏探讨了MLP主干网络的创新,如S2-MLPv2,它通过通道扩展和分块空间移位提高性能,达到83.6%的ImageNet top-1准确率。文章介绍了分割注意力模块,用于融合特征图。提供了S2Attention类的代码示例,展示如何结合空间位移和分割注意力。详细内容和实战案例可在[CSDN博客](https://blog.csdn.net/shangyanaf)找到。
计算机网络:物理层(奈氏准则和香农定理,含例题)
计算机网络:物理层(奈氏准则和香农定理,含例题)
1488 0