作者:朱金灿
1. 下载libxml2-2.7.6源码,地址为:ftp://ftp.xmlsoft.org/libxml2/libxml2-2.7.2.tar.gz
2. 解压源码文件后在根目录下可以找到win32的文件夹,打开它可以看到下面有一个configure.js的文件,双击运行它可以生成一个config.msvc的文件。打开config.msvc文件,在里面加上libiconv和zlib的头文件和库文件路径(因此你也可以看到在编译libxml2-2.7.6之前需要先编译libiconv和zlib),参考如下:
INCLUDE=$(INCLUDE);.;$(THIRD_PARTY)\libiconv_1_11_1_vc9\include;$(THIRD_PARTY)\zlib_vc9\include
LIB=$(LIB);.;$(THIRD_PARTY)\libiconv_1_11_1_vc9\lib;$(THIRD_PARTY)\zlib_vc9\lib
THIRD_PARTY为我定义的一个环境变量,其值为一个第三方库的路径。
3. 打开Visual Studio 2008 命令提示.不是CMD,然后使用cd命令,切换到win32的目录下,执行下面编译命令:
nmake -f Makefile.msvc
这个是编译release版本的库,要编译debug版本的库需要运行下面命令:
nmake -f Makefile.msvc DEBUG=1
注意,编译完release版本后需要运行nmake -f makefile.vc clean命令清理目标文件才能编译debug版本的库。
4. 在编译过程中可能会出现
..\testapi.c(294) : error C2001: 常量中有换行符
..\testapi.c(295) : error C2143: 语法错误 : 缺少“)”(在“return”的前面)
这个不要紧..是测试代码..不过.改了.也好.打开testapi.c 找到294行.
if (no == 2) return((xmlChar) '?); 明显少了一个单引号:改为:if (no ==2) return((xmlChar) '?');
重新 nmake -f Makefile.msvc 编译即可.