作者:朱金灿

 

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 编译即可.