2011-04-10 101 views
1

我正在装盘开始使用Berkeley DB的,我下载了最新版本的数据库可在这里:Berkeley DB 5.1.25.msi Windows installer, with AES encryption(链接)问题在Berkeley DB在Visual Studio 2010

安装后,我开始Visual Studio 2010和我做了followng:

项目 - > “项目名称” 属性 - > VC++ Diretories - >包括目录

我加入了路径

C:\ Program Files文件\ ORACLE \ Berkeley DB的 11gR2的5.1.25 \包括

,我写了下面的代码:

#include<db_cxx.h> 
#include<iostream> 
using namespace std; 


int main(){ 
    Db db(NULL, 0);    // Instantiate the Db object 

    return 0; 
} 

,但它显示了以下错误:

错误1个错误LNK2019:无法解析 外部符号“公共:虚拟 __thiscall Db:交:〜DB(无效)”(??器1Db @@ UAE @ XZ)在功能上 _mainÇ引用:\用户\艾哈迈德\文档\ Visual工作室 2010 \项目\ SSSS \ SSSS \ test.obj

错误2错误LNK2019:无法解析 外部符号 “公共:__thiscall DB :: DB(类DbEnv *,无符号整型)” (?? 0DB @@ @ QAE @@ PAVDbEnv I @ Z)函数_main ç引用 : \用户\艾哈迈德\文件\视觉工作室 2010 \项目\ SSSS \ SSSS \ test.obj

错误3错误LNK1120:2悬而未决 的外部C:\用户\艾哈迈德\文件\视觉 工作室 2010 \项目\ SSSS \调试\ ssss.exe 1

我试图按照文件,我读了这片INF,但我不知道我可以在Visual Studio 2010中应用它:

当 发展过程中构建应用程序,你应该正常使用 编译选项“调试多线程 DLL”,并连接 build_windows \调试\ libdb51d.lib。您还可以使用Berkeley DB库和 工具的发布版本 构建您的 ,这些工具将放置在 build_windows \ Win32 \ Release \ libdb51.lib中。 当与版本 构建链接时,应该使用“发布多线程DLL” 编译选项编译代码 。您还需要 将build_windows目录添加到 应用程序项目的包含目录的 列表中,或将 Berkeley DB包含文件复制到另一个 位置。

回答

1

您需要链接Berkley DB附带的.lib文件。可能有一个C:\ Program Files \ Oracle \ Berkeley DB 11gR2 5.1.25 \ lib文件夹。您需要添加此文件夹,或者可能需要添加适当的子文件夹。例如,可能有一个带有x86和x64子文件夹的Windows文件夹。您需要将相应的子文件夹添加到“库目录”中,该文件夹位于“包含目录”选项下方。

然后,您将必须指定链接器.lib将包括。您应该检查软件的文档以查看需要哪一个。

有两种方法可以在VS2010中添加库依赖关系。第一种方法是将以下代码行添加到项目内的适当位置(在代码片段中,它将属于唯一源文件的顶部)。

#pragma comment(lib, "filename.lib") 

请注意,您的文件名需要被包裹在“,且该行不应该跟一个;

另一种方式是在项目属性设置中添加名字。如果你转到Project Settings-> Linker-> Input-> Additional Dependencies。你应该看到你需要构建控制台应用程序的默认.libs,比如kernel32.lib,user32.lib等。只需要以同样的方式添加文件你做了额外的包含文件夹

+0

我最近意识到了这一点,谢谢Riley Barnelt。 – Aan 2011-04-11 09:30:33