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.libhttp://download.csdn.net/detail/bladeandmaster88/9745788
發佈了11 篇原創文章 · 獲贊 51 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章