编译libiconv

来源:互联网 发布:mac安装apache php 编辑:程序博客网 时间:2024/05/16 01:29
2010-07-20 10:02

欢迎看看我的另一个小窝,说不定有意外的精喜哦 ^_^ www.devres.info

编译libiconv
CC=arm-linux-gcc ./configure --build=i686-linux --host=arm-linux --prefix=/usr/local/arm-linux
make && make install

 

1、从sunfreeware分别下载gettext和libiconv
注意,是二进制的安装包,而不是源码包
2、gunzip 这两个软件包,然后
pkgadd -d gettext*
pkgadd -d libiconv*

3、export PATH=/usr/local/bin:$PATH
这个目的是用来用gnu的iconv代替solaris自带的iconv
这样你就可以测试了。
$ iconv -l|grep -i UTF
UTF-8
UTF-16
UTF-16BE
UTF-16LE
UTF-32
UTF-32BE
UTF-32LE
UNICODE-1-1-UTF-7 UTF-7 CSUNICODE11UTF7
$ iconv -l|grep -i unicode
ISO-10646-UCS-2 UCS-2 CSUNICODE
UCS-2BE UNICODE-1-1 UNICODEBIG CSUNICODE11
UCS-2LE UNICODELITTLE
UNICODE-1-1-UTF-7 UTF-7 CSUNICODE11UTF7

你会发现这个iconv是支持utf-16的。我记得unicode指的就是utf-16

所以命令行测试,你就可以用
$iconv -f gb2312 -t utf-16 your_data_file
相比solaris自带的
/usr/bin/iconv -f gb2312 -t utf-16 test_conv.c
就报错。
注意上面不要在步骤4之后测试,否则用的库是gnu的,就不会报错了。

4、export LD_PRELOAD=/usr/local/lib/libiconv_plug.so
这个目的就是用来替换libc的缺省iconv库函数的
所以你测试源码中这样写
iconv_open("utf-16", "gb2312");
or
iconv_open("gb2312", "utf-16");
编译的时候需要带-liconv

http://www.chinaunix.net/jh/23/203917.html

 

原创粉丝点击