首页 > 系统相关 >Linux下手工编译libiconv库的小问题

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

时间:2023-01-23 16:55:42浏览次数:65  
标签:__ 1.14 make endif libiconv 编译 Linux gets

我的电脑是 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/

标签:__,1.14,make,endif,libiconv,编译,Linux,gets
From: https://www.cnblogs.com/lofanmi/p/17065288.html

相关文章

  • 公司内网jenkins编译拿不到nexus的依赖库
    公司内网jenkins编译拿不到nexus的依赖库话说我们公司内网有个docker部署的nexus,nexus是一个Maven仓库管理器。有时开发会自己上传项目依赖库(以前是我上传的,后来给回......
  • 【ubuntu基础】linux常用命令总结
    前言 常用命令查看cpu内存使用情况tophtop 解压文件至某个目录tar-zxvfaaa.tar.gz-C/path/to/untar/​​ 删除size为0的文件​​find.-name"*"-typef-size0c......
  • X264在龙芯3A5000的编译
    X264在龙芯3A5000的编译 修改方法1)./configure执行配置脚本,若出现“configure:error:cannotguessbuildtype;youmustspecifyone”执行2)步骤,如果未出现报错......
  • Linux系统编程—进程(作业+答案)
    文章目录​​程序和进程​​​​并发​​​​单道程序设计​​​​多道程序设计​​​​CPU和MMU​​​​进程控制块PCB​​​​环境变量:​​​​常见环境变量​​​​PATH......
  • 面试常问的21条Linux命令
    本文章总结了21条最频繁使用的Linux命令,也是面试官考察你对Linux系统熟不熟常问的面试题,可以收藏本文章,作为一个Linux命令速查手册。文章目录​​一、文件和目录​​​​二......
  • 小米-红米(Redmi)-note刷 Linux系统(二)【下载、备份篇】
    上一篇:小米-红米(Redmi)-note刷Linux系统(一)【基础篇】下一篇:小米-红米(Redmi)-note刷Linux系统(三)【下载准备篇】 要想不变砖,备份要在前。重要事情说3遍。先备份!!!先......
  • 小米-红米(Redmi)-note刷 Linux系统(三)【准备篇】
    上一篇:小米-红米(Redmi)-note刷Linux系统(二)【下载、备份篇】下一篇:小米-红米(Redmi)-note刷Linux系统(四)【篇】 一、开启USB调试模式设置--关于手机,点击7次“M......
  • Linux笔记
    Invalidmessagereceivedwithsignature18245参考:https://blog.csdn.net/fh_luchenxi/article/details/103911419查看端口使用情况参考:https://www.cnblogs.com/qin......
  • 学习笔记——Liunx;Linux文件与目录结构;VI/VIM编辑器(一般模式、编辑模式、命令模式)
    2023-01-23一、Linux1、Liunx的简介Linux是一套免费使用和自用传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。Linux能运......
  • Linux-环境变量
         ......