libiconv编译出错解决
来源:互联网 发布:php自助建站系统源码 编辑:程序博客网 时间:2024/05/21 09:12
使用iconv命令将文档的编码进行转换即可。
iconv默认情况下,是没有被安装的,下面简单介绍下iconv的安装过程:
1. 下载:
http://www.gnu.org/software/libiconv/#TOCdownloading
2. 安装:
下载完成后,切换到下载目录先进行解压:
该工具安装完成后,肯定要先了解下这个命令的用法吧,这个没什么可说的:
iconv -f 原编码 -t 目标编码 要转换的文件
4. 编码转换:
学会了编码的转化,我们就举了例子示范一下:
注意:
如果不出意外的话,上面的安装步骤可没有那么顺利,在make的时候,会提示下面的错误:
那我们只要进行如下操作即可解决这个问题:
1. 切换到srclib目录下:
iconv默认情况下,是没有被安装的,下面简单介绍下iconv的安装过程:
1. 下载:
http://www.gnu.org/software/libiconv/#TOCdownloading
2. 安装:
下载完成后,切换到下载目录先进行解压:
$tar -xzvf libiconv-1.14.tar.gz
然后进入解压后的文件中
$cd libiconv-1.14_2查看其中的README文件,我们可以看到安装步骤:(当然,如果您熟悉源码的安装,这步完全可以省略^-^)
$ ./configure --prefix=/usr/local$ make$ make install3. 命令学习
该工具安装完成后,肯定要先了解下这个命令的用法吧,这个没什么可说的:
$iconv --help我们会看到下面的内容:
Usage: iconv [OPTION...] [FILE...]Convert encoding of given files from one encoding to another. Input/Output format specification: -f, --from-code=NAME encoding of original text -t, --to-code=NAME encoding for output Information: -l, --list list all known coded character sets Output control: -c omit invalid characters from output -o, --output=FILE output file -s, --silent suppress warnings --verbose print progress information -?, --help Give this help list --usage Give a short usage message -V, --version Print program versionMandatory or optional arguments to long options are also mandatory or optionalfor any corresponding short options.说的很明白,就是按照下面的格式进行转换:
iconv -f 原编码 -t 目标编码 要转换的文件
4. 编码转换:
学会了编码的转化,我们就举了例子示范一下:
$iconv -f gbk -t utf8 test.txt
执行下面的命令:
$iconv -f gbk -t utf8 test.txt > test.convert.txt此时我们打开这个test.convert.txt文件就会发现,原来的中文显示正常了^-^
注意:
如果不出意外的话,上面的安装步骤可没有那么顺利,在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 1make[2]: Leaving directory `/home/freeman/Downloads/libiconv-1.14_2/srclib'make[1]: *** [all] Error 2make[1]: Leaving directory `/home/freeman/Downloads/libiconv-1.14_2/srclib'make: *** [all] Error 2这个这个软件本身存在的一个Bug,通过Google,发现一个解决该问题的补丁,内容如下:
--- 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 #endifPS:内容中的"+"表示新增的内容,"-"表示删除的内容!
那我们只要进行如下操作即可解决这个问题:
1. 切换到srclib目录下:
$cd srclib
2. 修改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");#endif3. 保存退出,然后再进行make, make install便可顺利安装^-^
0 0
- libiconv编译出错解决
- libiconv编译出错解决
- 编译 libiconv出错了
- 编译 libiconv出错了
- 编译libiconv
- QtE编译出错解决
- Android 编译出错解决
- openssl编译出错解决
- 利用NDK编译libiconv
- windows下编译libiconv
- 利用NDK编译libiconv
- vs2013 编译libiconv
- Android交叉编译libiconv
- vs2010编译libiconv
- libiconv静态编译
- Libiconv的交叉编译
- libiconv编译与使用
- Windows下面编译libiconv
- Objective-C之初始化
- 机器学习:贝叶斯总结_3:线性回归和贝叶斯回归
- spring bean
- linux下信号
- LeetCode #1 Two Sum C# Solution
- libiconv编译出错解决
- font-face 自定义字体,让页面文艺起来~~~
- 例程8. PCA_PWM -- 慕司板IAP15
- 第六周项目一-分数类的雏形(2)
- eclipse中批量修改Java类文件中引入的package包路径 - [工具使用]
- 模态框
- Android 源码下载 编译.
- BJTU 1703 Ficer的春运 (DFS)
- 格雷码