2011-04-10 40 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