windows下使用VS编译libIconv库

libiconv是将一种编码格式转换为另一种编码格式的跨平台开源库,http://www.gnu.org/software/libiconv/可以查看支持转换的编码类型。但是libiconv 的开发者并没有发布windows下的源码和库,要想在windows下使用libiconv 库,必须自己手动把libiconv 移植到windows平台,具体步骤如下:


1、去http://ftp.gnu.org/pub/gnu/libiconv/下载源码包,本文使用的是libiconv-1.14.tar.gz

2、新建libiconv空的控制台工程

(1)将下载的库中lib文件夹下的所有文件拷贝到工程目录下

(2)将拷贝到工程目录下的config.h.in重命名为config.h

(3)将库中libcharset/lib/localcharset.c文件拷贝到工程目录下

(4)将库中include文件夹下iconv.h.in文件重命名为iconv.h放在工程目录下

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, /*ICONV_CONST*/ char* * inbuf, size_t *inbytesleft, char* * outbuf, size_t *outbytesleft);

(2)localcharset.c:

      注释掉76行:  # include "configmake.h"  

  468行 : sprintf  改为 sprintf_s(buf, 2 + 10 + 1, "CP%u", GetACP());

7、编译,并将编译之后的libIconv.lib和iconv.h拷贝出来

  这里有现成VS2010工程,可以直接编译出libIconv.lib http://download.csdn.net/detail/bladeandmaster88/9745788
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值