iconv 编译不通过问题

升级Debian到wheezy后重新编译php。在编译libiconv时出错(话说俺居然没有找到这货的二进制包  )

./stdio.h:1010:1: error: ‘gets‘ undeclared here (not in a function)

下面报

make[2]: *** [progname.o] Error 1

make[2]: *** Waiting for unfinished jobs....

make[2]: Leaving directory `/opt/sources/libiconv-1.14/srclib‘

make[1]: *** [all] Error 2

make[1]: Leaving directory `/opt/sources/libiconv-1.14/srclib‘

make: *** [all] Error 2

Google搜了好久终于找到一篇文章《libiconv gets undeclared》真是雪中送炭啊。

wget -c http://www.itkb.ro/userfiles/file/libiconv-glibc-2.16.patch.gz
cd libiconv-1.14/srclib
patch -p1 stdio.in.h

俺运行patch后好久都没有反应  最后人肉修改

这个补丁的内容如下

--- srclib/stdio.in.h.orig      2011-08-07 16:42:06.000000000 +0300
+++ srclib/stdio.in.h   2013-01-10 15:53:03.000000000 +0200
@@ -695,7 +695,9 @@
 /* It is very rare that the developer ever has full control of stdin,
    so any use of gets warrants an unconditional warning.  Assume it is
    always declared, since it is required by C89.  */
-_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
时间: 2024-10-25 10:19:06

iconv 编译不通过问题的相关文章

将iconv编译成lua接口

前一篇博文说了.在cocos2dx中怎么样使用iconv转码,这节我们将上一节中写的转码函数,做成一个lua接口.在lua脚本中使用. 网上能够下载到luaconv.可是编译的时候总是报错,所以自己写了一接口. 一 加入lua接口文件 // luaiconv.h #ifndef __LUA_ICONV_H__ #define __LUA_ICONV_H__ #include "tolua++.h" #include "tolua_event.h" #include

linux下编译qt5.6.0静态库——configure配置

 随笔 - 116  文章 - 4  评论 - 7 linux下编译qt5.6.0静态库--configure配置 linux下编译qt5.6.0静态库 linux下编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库: 附加选项: QNX/Blackberry选项: Android 选项: 生成makefile 遇到链接检查失败的情况 生成makefile后进行编译 编译时的错误 多重定义'QT_MODBUS()'和'QT_MODBU

CentOS6.6 x64+Nginx1.3.8/Apache-httpd 2.4.3+PHP5.4.8(php-fpm)+MySQL5.5.28+CoreSeek4.1源码编译安装

系统为CentOS6.6 x64服务器版精简安装. 准备工作 部署安装目录 /usr/local/* /var/lib/* /var/lib64/* 下载源文件 #cd /usr/local/src wget http://cdn.mysql.com/Downloads/MySQL-5.5/mysql-5.5.28.tar.gz wget http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.10.tar.gz wget http://www.ng

linux下编译qt5.6.0——configure配置

linux下编译qt5.6.0 首先下载源码包qt-everywhere-opensource-src-5.6.0.7z 然后解压 7z x -o/home/o/qt-src/qt-opensource-src-5.6.0 qt-everywhere-opensource-src-5.6.0.7z cd /home/o/qt-src/qt-opensource-src-5.6.0 我这里解压到/home/o/qt-src/qt-opensource-src-5.6.0中,解压后进入这个目录. c

字符转码开源库libiconv目前还不支持64位

最新版的libiconv 1.14目前还不支持64位系统,只能编译出32位库. libiconv 1.14下载地址: http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz libiconv介绍: http://www.gnu.org/software/libiconv/ linux系统编译安装方法: $ ./configure --prefix=/usr/local $ make $ make install 执行make会报错: ./

cocos2dx 交叉编译 编译 iconv库

> cocos2dx提供三方的iconv来转化字符问题,交叉编译到android的时候,需要引入iconv的module,下载iconv,解压到cocos2d根目录 ,编写mk: LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_ARM_MODE := arm ifeq ($(BUILD_WITH_NEON),1) LOCAL_ARM_NEON := true endif LOCAL_MODULE := iconv LOCAL_CF

php编译错误:configure: error: Please reinstall the iconv library.

configure: error: Please reinstall the iconv library. 今天在编译安装php5.6.10的时候出现这个报错 然后怎么都解决不了,度娘也没有找到方法,于是仔细看了下配置 ./configure \ --prefix=/usr/local/php5.6.10 \ --with-apxs2=/usr/local/apache/bin/apxs \ --with-mysql=/usr/local/mysql \ --with-xmlrpc \ --wi

windows 下编译iconv

从http://www.gnu.org/software/libiconv/ 下载 libiconv-1.11.1, 这是最后一个支持MSVC编译的版本. 编译64位Lib 命令行cmd 执行amd64位脚本,D:\Program Files (x86)\Microsoft Visual Studio 8\VC\bin\amd64\vcvarsamd64.bat 转移到libiconv-1.11.1目录 编译nmake -f Makefile.msvc  DLL=1  MFLAGS=-MT  N

编译OpenWRT时报gconvert.c错误解决方法

我在第一次编译OpenWRT时,出现如下错误提示: gconvert.c:66:2: error: #error GNU libiconv not in use but included iconv.h is from libiconv 我在网上找解决方案,结果一致地都是说,重新 ./configure 一下: ./configure --enable-iconv=no --with-libiconv=gnu make 可问题的关键是:OpenWRT的trunk路径下没见有个 configure