Electronic Joint Business

Solution for E-Business

libxml2

在C/C++中使用LIBXML2

文章评价:
C/C++ 标准库中并没有提供任何操作 XML 的方法,因此必须借助第三方函数库,您可以使用免费的诸如 Microsoft MSXML SDK 的商业版软件,也可以使用开源实现 expat 和 libxml2,在xmlbench上罗列了一些常见的 XML 类库及其性能比较,可以供您参考选择。这里我们主要介绍 libxml2,libxml2 是一个 C 语言的 XML 程序库,它可以包括 Windows, Linux, Mac 等等多种操作系统上使用,不但支持 DOM 和 SAX2 等等标准 XML 的解析方法,还从 C# 中借鉴了 XmlTextReader 这种简洁易懂的 pull 解析方式,此外 libxml2 支持 XPATH 查询,并且部分支持 XSLT 转换,在许多著名函数库中都有 libxml2 的身影,比如 Glib 等等。

libxml 的官方地址是XmlSoft,您可以在上面下载最新的源代码。接下来,我们先将源代码编译成平台所需的二进制文件。

编译 libxml2
在 Linux 或者 Windows 上使用 GCC 的读者可以参考用MinGW64编译Readline GetText等类库一文。这儿我们介绍一下 VC++ 的编译方法。Libxml2 依赖于 iconv 和 zlib 库。libiconv 库是一个字符编码转换工具,它提供了一个iconv()的函数,以实现一个字符编码到另一个字符编码的转换。分别下栽这些源代码,包括Zlib 1.2.5, libiconv 1.11.1 和 libxml2 2.7.8。

首先编译 libiconv,需要用 admin 权限打开 VC++ 的命令提示窗口,然后运行:

nmake -f Makefile.msvc NO_NLS=1 MFLAGS=-MT

如果需要成共享库的话,可以在参数中的添加上”DLL=1”。编译结束之后,运行 nmake -f Makefile.msvc install,默认会在 C 盘创建 usr 目录,保存得到的头文件、库文件和二进制文件。

>>> 阅读全文

 

, , , , , ,

用MinGW64编译Readline GetText等类库

MinGW,即 Minimalist GNU For Windows。它是一些头文件和迁移库的集合,该集合允许人们在不使用其他第三方动态链接库的情况下采用 GCC(GNU Compiler C)产生 Windows32 程序。

MSYS:Minimal GNU(POSIX)system on Windows,是一个小型的 GNU 环境,提供了类似 Bourne shell 环境下要编译程式的一些工具包括基本的 bash,make 等等,是为方便进行模拟 Linux 下配置编译环境而设计的。 二者配合可以很方便的将 Linux 下的许多优秀软件迁移到 Windows 上来。

这里介绍一些常见的GNU库的编译方法,为了得到64位的二进制包,必须选用MinGW64,而不是常见的MinGW,所以需要添加–build=x86_64-w64-mingw32,您可以根据自己的实际环境进行修改。我是在YA-MinGW64中有维护一些二进制包,你可以从该站点上下载。

安装 MinGW64
MinGW64 不是 MinGW 的子项目,它是一个新的开源项目,我是 MinGW64 的开发者之一,这个项目的目的是把 MinGW 迁移到64位平台上来(MinGW官方不提供64位版本)。你可以到MinGW64站点 上下载 GCC 4.6.3 或者 GCC 4.7.0 的二进制发布,解压到 MinGW64 目录里即可。

除了 MinGW64 外,我们还需要一个类似 Bash 的开发环境,以方便运行 configure 命令,你可以下载 MinGW 的 MSYS(32位)的可执行安装文件,安装过程中会提示 MinGW的路径,这里只需要选择 MinGW64 的安装目录即可。安装好 MSYS 之后,打开安装目录下的 etc 子目录中的 fstab 文件,添加以下几行:

>>> 阅读全文

 

, , , , , , , , , ,