windows下 berkerly db的安装配置(修正了关键步骤)
这个是我从别人的博客上找来的,亲测可用,确实解决了我当时遇到的一些问题。
首先,从http://www.oracle.com/technology/global/cn/software/products/berkeley-db/index.html这 个链接下载Berkeley DB 4.7.25.msi Windows 安装程序,这个是Windows操作系统下的Berkeley DB安装程序,解压之后双击就能安装,记住安装目录,本人装在C:\Program Files\Oracle\Berkeley DB 4.7.25这个目录下。
之后,打开Microsoft Visual Studio 2005这个开发环境,至于其它的开发环境,本人只尝试了VC++ 6.0没有成功,因此转而使用Microsoft Visual Studio 2005,对于使用VC的朋友们只能说句抱歉了。文件-->新建-->项目,项目类型选择Win32-->Win32控制台应用程序, 名字为Berkeley,点击确定-->下一步-->完成。这时视图转到项目中,自动生成的Berkeley.cpp的初始代码如下:
// Berkeley.cpp : 定义控制台应用程序的入口点。
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
return 0;
}
此时,右键单击Berkeley这个工程,选择“属性”到达属性的对话框,在“配置属性”里面选择C/C++,然后选择“常规”,点击“附加包含目录”行 的右半部分,浏览选择Berkeley DB安装目录的include文件夹,确定之后“附加包含目录”的值就变为"C:\Program Files\Oracle\Berkeley DB 4.7.25\include"(按照我的安装路径)。之后在“配置属性”里面再选择链接器,然后选择“常规”,点击“附加库目录”行的右半部分,浏览选 择Berkeley DB安装目录的lib文件夹,确定之后“附加库目录”的值就变为"C:\Program Files\Oracle\Berkeley DB 4.7.25\lib"(按照我的安装路径)。最后之后在“配置属性”里面再选择链接器,然后选择“输入”,点击“附加依赖项”行的右半部分,手工输入将 其值改为libdb47d.lib (这个文件在C:\Program Files\Oracle\Berkeley DB 4.7.25\lib这个目录下)(己注:现在版本是libdb51.lib,这个后面的数字随着版本的更新在变化),最后将"C:\Program Files\Oracle\Berkeley DB 4.7.25\bin"目录下对应的libdb47d.dll复制到当前工程的debug目录下,确定之后环境的搭建就完成了。
测试代码:
// TestBtree.cpp : 定义控制台应用程序的入口点。
#include "stdafx.h"
#include <db_cxx.h>
#include<iostream>
#include<cstring>
int _tmain(int argc, _TCHAR* argv[])
{
Db db(NULL, 0);
u_int32_t oFlags = DB_CREATE;
try {
db.open(NULL,
"mybtree1.db",
NULL,
DB_BTREE,
oFlags,
0);
} catch(DbException &e) {
} catch(std::exception &e) {
}
Dbt key,data;
int i,ret,count=100;
for(i=0;i<count;i++){
Dbt key(&i,sizeof(int));
Dbt data(&i,sizeof(int));
db.put(0, &key, &data, DB_NOOVERWRITE);
}
Dbc *dbcp,*dbcp1;
db.cursor(NULL, &dbcp, 0);
while (dbcp->get(&key, &data, DB_NEXT) == 0)
{
printf("The Key::data is %d\n",*((int *)key.get_data()));
printf(" The Data::data is %d\n",*((int *)data.get_data()));
}
dbcp->close();
db.sync(0);
try {
db.close(0);
} catch(DbException &e) {
} catch(std::exception &e) {
}
return 0;
}
假如最后可以运行,则说明配置成功。