VC 2008编译libxml2-2.7.6

手册/FAQ (523) 2016-04-21 13:32:13

1.     下载libxml2-2.7.6源码 

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

THE END