Сбои при компиляции с использованием многопоточности (/ MT)

Я новичок в 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», &дБ);

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]