(本文同时发布于www.bdbchina.com,转载请注明出处)
在前面的文章《Berkeley DB Xml 入门系列之一: 简介与”query”示例程序详解》我们已经知道了Berkeley DB Xml程序的一些基本流程和概念。在文章《使用Visual C++ 2008 Express Edition 编译Oracle Berkeley DB XML》介绍了如何使用Visual Studio 在Windows平台上编译Berkeley DB Xml,本文将介绍在Linux或者类Unix的操作系统上如何编译和使用Berkeley DB Xml。
可以在这个地址http://www.oracle.com/technology/software/products/berkeley-db /xml/index.html下载最新的Berkeley DB Xml的 安装包,Linux下使用可以下载.tar.gz 或者.zip结尾的包。目前的最新版本是2.4.16, .tar.gz结尾的包的大小约为36M。我们下载.tar.gz 结尾的包作为本文的示例。
下载完后得到是这样一个文件
进入dbxml-2.4.16目录后可以看见有一个buildall.sh的脚本, 这个脚本就是用来编译dbxml的。可以使用–help选项查看编译选项。一些主要选项有:用 -x 指定c++ 编译器, -c指定 c编译器,要注意的是Berkeley DB Xml需要使用gnu的make程序进行编译,可以用-m 指定make程序。我们在linux下编译的话这些选项基本不需要指定,默认即可
在运行buildall.sh的时候如果不指定安装目录,则所有编译产生的库文件和头文件就会安装在主目录的install目录下。如果指定了安装目录, 请确保对目录有写权限。我们把–enable-java的选项打开,编译java库。
接着等待编译过程,一般酷睿2的机器十几分钟就编译完了。查看安装目录
我们所需要的库就安装在lib目录下,头文件在include目录下,docs目录下是文档,bin目录下放了一些Berkeley DB 和 Berkeley DB Xml的工具。
我们可以编译dbxml/examples/cxx/basic/helloWorld.cpp示例程序,看我们编译的库是否正确。在用编译的时候需要指定-I 和-L选项
运行的时候需要把库的位置加入到环境变量中
一些Linux发行版对Berkeley DB Xml已经进行了打包,可以直接安装使用非常方便。可以参考如下命令:
Feodra: sudo yum install dbxml
Gentoo: sudo emerge dbxml
使用buildall.sh脚本来编译Berkeley db xml方便快捷,如果读者在linux或unix系统下编译有什么问题欢迎和我交流。