iconv是常用的一个字符集转换的开源库,主页在http://www.gnu.org/software/libiconv/
1.11.1版本是最后一个支持MSVC编译的版本,1.12及之后的版本只支持MingW和Cygwin编译,下面是我用vs2008编译iconv的过程
1.下载1.11版本的libiconv
2.在srclib/progname.h文件中添加一行:
#define EXEEXT ".exe"
3.将srclib/stdint_.h更名为srclib/stdint.h,并将'@'符号全部移除
4.对srclib/Makefile.msvc进行以下改动:
1) 在OBJS=的定义中添加 width.obj
2) 添加如下定义:
width.obj : width.c
$(CC) $(INCLUDES) $(CFLAGS) -c width.c
5.在c盘下创建lib_x86文件夹
6.调用以下命令编译DLL或LIB
nmake -f Makefile.msvc NO_NLS=1 DLL=1 MFLAGS=-MD PREFIX=c:\lib_x86 IIPREFIX=c:\lib_x86
nmake -f Makefile.msvc NO_NLS=1 DLL=1 MFLAGS=-MD install PREFIX=c:\lib_x86 IIPREFIX=c:\lib_x86
或
nmake -f Makefile.msvc NO_NLS=1 MFLAGS=-MD PREFIX="c:/slib_x86" IIPREFIX="c:/slib_x86"
nmake -f Makefile.msvc NO_NLS=1 MFLAGS=-MD install PREFIX="c:/slib_x86" IIPREFIX="c:/slib_x86"
PREFIX 和 IIPREFIX中的路径,必须用绝对路径
7.编译完后,程序在./lib_x86目录下
一、编译win64位
0、转移到命令行cmd
1、执行amd64位脚本,D:\Program Files (x86)\Microsoft Visual Studio 8\VC\bin\amd64\vcvarsamd64.bat
2、转移到libiconv-1.11.1目录
3、编译nmake -f Makefile.msvc DLL=1 MFLAGS=-MT NO_NLS=1 PREFIX=d:\libuv
4、安装nmake -f Makefile.msvc install DLL=1 MFLAGS=-MT NO_NLS=1 PREFIX=d:\libuv
5、编译并安装nmake -f Makefile.msvc all install DLL=1 MFLAGS=-MT NO_NLS=1 PREFIX=d:\libuv
二、编译win32位
0、转移到命令行cmd
1、执行32位脚本,D:\Program Files (x86)\Microsoft Visual Studio 8\VC\bin\vcvars32.bat
其他步骤与win64一致。
(编译好的Win32和Win64动态库及资料,移步http://download.csdn.net/detail/pony12/7789473)