Я новичок в leveldb. Я попытался скомпилировать мой код на C ++ для создания leveldb в Visual Studio 2015. Я пытался скомпилировать код с двумя различными вариантами генерации кода.
Чтобы изменить свойство:
Проект-> Свойства конфигурации-> C / C ++ -> Генерация кода
Это весь мой код
#include <iostream>
#include "leveldb/db.h"#include <memory>
using namespace std;
int main(int argc, char** argv)
{
leveldb::DB* db;
leveldb::Options options;
options.create_if_missing = true;
//options.error_if_exists = true;
/*This is the line where it crashes*/
leveldb::Status status = leveldb::DB::Open(options, "E:\\testdb\\level2", &db);
/*This is the line where it crashes*/
if (!status.ok())
{
cerr << status.ToString() << endl;
}
else
{
cout << "Created successfully" << endl;
}
for (int i = 0; i < 1000000; i++)
{
status = db->Put(leveldb::WriteOptions(), to_string(i), to_string(i));
}
delete db;
return 0;
}
Ниже приведены результаты двух моих дел
Случай 1
Runtime Library-> Многопоточная DLL (/ MD)
Результат:
Код скомпилирован успешно, и я мог видеть успешное выполнение моего кода, и БД создана
Корпус: 2
Библиотека времени выполнения-> Многопоточная (/ MT)
Результат:
Код успешно скомпилирован. Но exe получает сбои всякий раз, когда он пытается открыть базу данных
Ниже приведена строка, где мой exe падает
leveldb :: Status status = leveldb :: DB :: Open (опции, «E: \\ testdb \\ level2», &дБ);
Задача ещё не решена.
Других решений пока нет …