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;
}

 

假如最后可以运行,则说明配置成功。

posted @ 2013-12-13 10:02  ArrowToMe  阅读(2486)  评论(0编辑  收藏  举报