(Ссылка) Проблема в Беркли БД в Visual studio 2010 - PullRequest
1 голос
/ 10 апреля 2011

Я хочу начать использовать Berkeley DB, я скачал последнюю версию DB, доступную здесь: Установщик Windows Berkeley DB 5.1.25.msi, с шифрованием AES

после установки я запустил Visual Studio 2010 и сделал следующее:

Проект -> "Имя проекта" Свойства -> Директории VC ++ -> включают директории

я добавил путь

C: \ Program Files \ Oracle \ Berkeley DB 11gR2 5.1.25 \ include

и я написал следующий код:

#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 (void) "(?? 1Db @@ UAE @ XZ) упоминается в функции _main C: \ Users \ Ahmed \ Documents \ visual studio 2010 \ Projects \ ГССО \ ГССО \ test.obj

Ошибка 2: ошибка LNK2019: не устранена внешний символ "public: __thiscall Db :: Db (класс DbEnv *, без знака int) " (?? 0Db @@ QAE @ PAVDbEnv @@ I @ Z) ссылка в функции _main C: \ Users \ Ahmed \ Documents \ visual studio 2010 \ Projects \ ГССО \ ГССО \ test.obj

Ошибка 3: ошибка LNK1120: 2 не устранена внешние C: \ Users \ Ahmed \ Documents \ visual студия 2010 \ Projects \ ssss \ Debug \ ssss.exe 1

Я пытался следовать документации, я прочитал этот фрагмент информации, но я не знаю, как его применить в Visual Studio 2010:

При создании приложения во время развитие, вы должны обычно использовать параметры компиляции "Debug Multithreaded" DLL "и ссылка против build_windows \ Debug \ libdb51d.lib. Вы можно также построить с использованием версии выпуска библиотек БД Berkeley и инструменты, которые будут размещены в build_windows \ Win32 \ Release \ libdb51.lib. При ссылке на релиз построить, вы должны скомпилировать свой код с «Выпуском многопоточной DLL» опция компиляции. Вам также нужно будет добавьте каталог build_windows в список включаемых каталогов вашего проект приложения, или скопируйте Berkeley DB включает файлы в другой место.

1 Ответ

1 голос
/ 11 апреля 2011

Вам необходимо связать .lib, включенный в Berkley DB.Вероятно, есть папка C: \ Program Files \ Oracle \ Berkeley DB 11gR2 5.1.25 \ lib.Вам нужно будет добавить эту папку или, возможно, соответствующую подпапку.Например, там может быть папка Windows с подпапками x86 и x64.Вам нужно будет добавить соответствующую подпапку в «Библиотеки каталогов», которая находится чуть ниже параметров «Включить каталоги».

Затем вам нужно будет указать компоновщику, какие библиотеки .lib включить.Вы должны проверить документацию на программное обеспечение, чтобы увидеть, какое из них необходимо.

Существует два способа добавления библиотечных зависимостей в VS2010.Первый способ - добавить следующую строку кода в соответствующее место внутри вашего проекта (в вашем фрагменте он будет находиться в самом верху вашего единственного исходного файла).

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

Обратите внимание, что вашимя файла должно быть заключено в "s", и за строкой не должно следовать;;

Другой способ - добавить имя в настройках свойств проекта. Если вы идете в "Настройки проекта->"Linker-> Input-> Additional Dependencies. Вы должны увидеть стандартные библиотеки .lib, которые необходимы для создания консольных приложений, таких как kernel32.lib, user32.lib и т. Д. Просто добавьте файл так же, как вы добавили дополнительную папку include.1010 *

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...