要理解这个leveldb只是一个数据库的库,
1)下载git clone https://github.com/google/leveldb.git
2)cd leveldb/ (首先需要可调试leveldb,才能阅读源代码。将leveldb中的make文件中OPT?=-g2注释去掉,原来的OPT?=-O2 -DNDEBUG这个注释起来) 。 然后执行make
3)编译完会出现out-shared 和out-static这两个文件夹,内部目前使用到的静态和动态库分别为:
ls leveldb/out-shared/libleveldb.so.1.20
ls leveldb/out-static/libleveldb.a
然后将这两个文件夹里面编译完成的动态和静态库分别放在linux的默认运行环境中(当然linux怎么应用第三方库,具体可以搜索,有n多种方法使用,添加只是最基本的一种方法。)当然还有不能忘记了头文件,也要放在默认的位置,如果不放在系统环境默认位置每次编译的时候可以使用-I xxx路径(是大写i, 表示头文件路径),本文将头文件leveldb/include中的leveldb文件夹整个放在/usr/include文件夹中。leveldb整个头文件文件夹放入会比单独散落的文件放入/usr/include要易于管理。
本文为了方便直接添加动态库在/usr/lib/中
# cp leveldb header file
sudo cp -r /leveldb/include/
usr/include/
# cp lib to /usr/lib/sudo
cp /leveldb/out-shared/libleveldb.so.1.20
/usr/lib/
# create link
sudo ln -s /usr/lib/libleveldb.so.1.20 /usr/lib/libleveldb.so.1
sudo ln -s /usr/lib/libleveldb.so.1.20 /usr/lib/libleveldb.so
# update lib
cachesudo ldconfig
4)然后测试使用leveldb数据库的时候使用-g 添加可调试选项,然后开始理解leveldb代码。
上述使用方法摘抄自:https://www.jianshu.com/p/8392acf7c9db
#include <iostream>
#include <cassert>
#include <cstdlib>
#include <string>
// 包含必要的头文件
#include <leveldb/db.h>
using namespace std;
int main(void)
{
leveldb::DB *db = nullptr;
leveldb::Options options;
// 如果数据库不存在就创建
options.create_if_missing = true;
// 创建