***已编译包相对简单,***源代码包则比较麻烦编译过程可能会因为机器的差別而遇到各种各样的问题。不过如果时间允许的话,编译源代码时遇到问题也不是坏事可能会因此而发现项目中潜在的问题。
libxml2在MinGW下编譯需要用到msys如果***MinGW时选择默认选项,而不是全部***的话需要另外装上msys。本文编译的libxml2版本是2.7.7
此外如果你的zlib是当前MinGW网站下载的话,吔就是版本号为1.2.3那么请升级到1.2.5,因为zlib-1.2.3带有bug导致libxml2源码包不能编译通过。zlib的官方网站:
改好后到上一层文件夹下双击msys.bat进入msys环境,这是一個模拟Linux的平台可以在上面执行configure、make等命令编译Windows程序。
编译成功后需要拷贝需要的文件到MinGW相应目录:
如果顺利的话,可以跳到本文的最后但是通常都是不顺利的,第一个可能遇到的问题是_imp__xmlFree未定义如下图:
这好像是一个多年未解决的bug,早在2004年就有人提出了他的解决办法昰修改xmlexports.h,链接如下:
解决这个问题之后再次执行make编译,如果出现如下错误gzdirect未定义,那就是没有升级zlib了
而下面的顺序是不行的:
最后,工具栏上的“Build target”选择gcc Debug按编译按钮,再执行程序返回正常结果: