WIN10 下 VS2015 编译libiconv-1.15

参考文章:http://blog.csdn.net/ghevinn/article/details/9834119
关于中文字符编码问题,这篇文章里面讲的很详细–>http://www.tuicool.com/articles/yIjiqm
UTF-8编码是用以解决国际上字符的一种多字节编码,是在互联网上使用最广的一种unicode的实现方式。它包含全世界所有国家需要用到的字符,是国际编码,通用性强。一般来说UTF-8可应用于大多数场景,尤其是互联网上,而中文编码主要使用GBK编码,因此这就有了GBK和UTF-8的相互转换需求。在linux平台下 libiconv 库来实现这种转换,参见libiconv 官网:http://www.gnu.org/software/libiconv/
但美中不足的是libiconv 的开发者并没有发布windows下的源码和库,所以要想在windows下使用libiconv 库,必须自己手动把libiconv 移植到windows平台,具体步骤如下:

1、去官网下载libiconv 源码包,本文使用的是libiconv-1.15.tar.gz
2、新建libiconv工程
(1)将下载的库中lib文件夹下的所有文件拷贝到这个文件夹下
(2)将烤入到libiconv\liniconv文件夹下的config.h.in重命名为config.h
(3)将库中libcharset/lib/localcharset.c文件拷贝到这个libiconv\liniconv文件夹下
(4)将库中include文件夹下iconv.h.in文件重命名为iconv.h放在libiconv\liniconv文件夹下
(5)将库中libcharset\include文件夹下localcharset.h.in文件重命名为localcharset.h放在libiconv\liniconv文件夹下
3、工程中添加现有项,将 iconv.c ,localcharset.c 添加到工程中.
4、工程属性->C/C++ –>附加包含目录:$(ProjectDir);
5、工程属性:常规->配置类型->静态库(.lib)
6、修改文件中的BUG
(1) iconv.h :

1).删除掉所有的 @ 符号 (14处) ,注意只去掉@符号,@中间的内容并不去掉。

2).修改25行:

extern DLL_VARIABLE int _libiconv_version;

改为  extern /*DLL_VARIABLE*/ int _libiconv_version;  

3).修改83行:

extern size_t iconv (iconv_t cd, ICONV_CONST char* * inbuf, size_t *inbytesleft, char* * outbuf, size_t *outbytesleft); 
改为 extern size_t iconv (iconv_t cd, const char* * inbuf, size_t *inbytesleft, char* * outbuf, size_t *outbytesleft);

(2)localcharset.c:

     注释掉76行:  # include "configmake.h"  
    511行 :   sprintf  改成   sprintf_s ,参数也要修改,具体怎么改,看了代码一眼就知道 -->sprintf_s (buf, "CP%s", pdot + 1);
     521行: sprintf  改成   sprintf_s , sprintf_s (buf, "CP%u", GetACP ());

7:生成解决方案,可能会报几个警告.中间若是报错找不到
#include<iconv.h> 和 #include<localcharset.h> ,

将这几处修改为:

#include "iconv.h"#include "localcharset.h"

备注:
编译成功后,将第5步修改为【工程属性:常规->配置类型->动态库(.dll)】 编译即可得到动态库 libiconv.dll
将平台由Win32修改为x64,重新编译即可得到64位下的相关文件。

如果你觉得上述过程很麻烦,这里有现成VS2015工程,可以直接编译: https://download.csdn.net/download/xiao_lxl/10461943
如果是拿来主义,这里也有编译好的32位和64位的libiconv的lib和dll文件:https://download.csdn.net/download/xiao_lxl/10461950

发布了225 篇原创文章 · 获赞 320 · 访问量 82万+
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览