leveldb开发环境搭建

1、祭出官方链接

2、创建调试脚本

2.1 编辑测试文件

cd leveldb # 跳到level目录顶层
mkdir -p app
cd app
vim mytest.cc

mytest.cc内容如下:

#include "leveldb/db.h"
#include <cassert>
#include <iostream>

using namespace std;
using namespace leveldb;

int main() {
    leveldb::DB *db;
    leveldb::Options options;
    options.create_if_missing = true;
    leveldb::Status status = leveldb::DB::Open(options, "testdb", &db);
    assert(status.ok());

    status = db->Put(WriteOptions(), "KeyNameExample", "ValueExample");
    assert(status.ok());
    string res;
    status = db->Get(ReadOptions(), "KeyNameExample", &res);
    assert(status.ok());
    cout << res << endl;

    delete db;
    return 0;
}

2.2 再修改leveldb/CMakeLists.txt文件

$ git diff
diff --git a/CMakeLists.txt b/CMakeLists.txt
index df486ea..a95c29a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -273,6 +273,7 @@ if(LEVELDB_BUILD_TESTS)
   leveldb_test("${PROJECT_SOURCE_DIR}/util/env_test.cc")

   if(NOT BUILD_SHARED_LIBS)
+    leveldb_test("${PROJECT_SOURCE_DIR}/app/app_test.cc")
     leveldb_test("${PROJECT_SOURCE_DIR}/db/autocompact_test.cc")
     leveldb_test("${PROJECT_SOURCE_DIR}/db/corruption_test.cc")
     leveldb_test("${PROJECT_SOURCE_DIR}/db/db_test.cc")

2.3 重新编译

非debug版

cd leveldb/build
cmake ..  # 因为CMakefileLists.txt发生了改动,需要重新解析。
make

debug版

cd leveldb/build
cmake  -DCMAKE_BUILD_TYPE=Debug ..
make

2.4 运行app

cd leveldb/build
./mytest
ValueExample

可以看到ValueExample的输出,则说明程序编译成功

3、vscode配置c++环境

 

参考文档:https://zhuanlan.zhihu.com/p/34657032

打赏

Categories:

Tags: /

发表评论

电子邮件地址不会被公开。