您的位置:首页 > 运维架构 > Linux

Berkeley DB Xml 入门系列之二: 在Linux下编译和使用Berkeley DB Xml

2009-08-09 11:27 686 查看
(本文同时发布于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 结尾的包作为本文的示例。

下载完后得到是这样一个文件

ying@bdbcn3:~t$ ls
dbxml-2.4.16.tar.gz


进入dbxml-2.4.16目录后可以看见有一个buildall.sh的脚本, 这个脚本就是用来编译dbxml的。可以使用–help选项查看编译选项。一些主要选项有:用 -x 指定c++ 编译器, -c指定 c编译器,要注意的是Berkeley DB Xml需要使用gnu的make程序进行编译,可以用-m 指定make程序。我们在linux下编译的话这些选项基本不需要指定,默认即可

ying@bdbcn3:~/dbxml-2.4.16$ ./buildall.sh –help
Usage: ./buildall.sh [options]
–help                                 print this help message
-p <platform>                         platform type as understood by
runConfigure in Xerces-C++ [guessed]
-c <C compiler name>                 [gcc]
-x <C++ compiler name>               [g++]
-m <make command>                  [make]
-b <bits to build: 32 or 64>           [32]
–no-configure:                       do not re-run configure steps.  Assumes
configuration has been run previously
–clean:                               perform ‘make clean’ on all libraries
….


在运行buildall.sh的时候如果不指定安装目录,则所有编译产生的库文件和头文件就会安装在主目录的install目录下。如果指定了安装目录, 请确保对目录有写权限。我们把–enable-java的选项打开,编译java库。

ying@bdbcn3:~/dbxml-2.4.16$ ./buildall.sh –enable-java


接着等待编译过程,一般酷睿2的机器十几分钟就编译完了。查看安装目录

ying@bdbcn3:~t/dbxml-2.4.16$ cd install/
ying@bdbcn3:~/dbxml-2.4.16/install$ ls
bin  docs  include  lib


我们所需要的库就安装在lib目录下,头文件在include目录下,docs目录下是文档,bin目录下放了一些Berkeley DB 和 Berkeley DB Xml的工具。

编译C++ hello world程序

我们可以编译dbxml/examples/cxx/basic/helloWorld.cpp示例程序,看我们编译的库是否正确。在用编译的时候需要指定-I 和-L选项

ying@bdbcn3:~/dbxml-2.4.16$g++ helloWorld.cpp -I /home/ying/dbxml-2.4.16/install/include/ -L /home/ying/dbxml-2.4.16/install/lib/ -ldbxml -ldb_cxx -lxqilla -lxerces-c -o helloWorld


运行的时候需要把库的位置加入到环境变量中

ying@bdbcn3:~/dbxml-2.4.16$ export LD_LIBRARY_PATH=/home/ying/dbxml-2.4.16/install/lib/
ying@bdbcn3:~/dbxml-2.4.16$ ./helloWorld
Document name: doc
Content: <hello>Hello World</hello>
ying@bdbcn3:~/dbxml-2.4.16$


在一些linux发行版中直接安装

一些Linux发行版对Berkeley DB Xml已经进行了打包,可以直接安装使用非常方便。可以参考如下命令:

Feodra: sudo yum install dbxml
Gentoo: sudo emerge dbxml

总结

使用buildall.sh脚本来编译Berkeley db xml方便快捷,如果读者在linux或unix系统下编译有什么问题欢迎和我交流。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: