一、下载LevelDB包
七、生成一个test文件:
具体原因我也不是很清楚,如有编译成功的热心好友给我留言,谢谢。
下载:leveldb-1.4.0.tar.gz
二、在Ubunt上编译
解压之后进入目录:leveldb-1.4.0
执行:make,生成了: libleveldb.a
三、相应头文件:/home/lb/pratice/leveldb-1.4/include/leveldb目录
四、新建测试目录:
cd /home/lb/pratice/leveldb-1.4
mkdir test
cd ~/leveldb-1.4
五、进入test进行测试:
cd ~/test
test.cpp:
#include <assert.h>
#include <string.h>
#include <leveldb/db.h>
#include <iostream>
int main(){
leveldb::DB* db;
leveldb::Options options;
options.create_if_missing = true;
leveldb::Status status = leveldb::DB::Open(options,"/tmp/testdb", &db);
assert(status.ok());
//write key1,value1
std::string key="key";
std::string value = "value";
status = db->Put(leveldb::WriteOptions(), key,value);
assert(status.ok());
status = db->Get(leveldb::ReadOptions(), key, &value);
assert(status.ok());
std::cout<<value<<std::endl;
std::string key2 = "key2";
//move the value under key to key2
status = db->Put(leveldb::WriteOptions(),key2,value);
assert(status.ok());
status = db->Delete(leveldb::WriteOptions(), key);
assert(status.ok());
status = db->Get(leveldb::ReadOptions(),key2, &value);
assert(status.ok());
std::cout<<key2<<"==="<<value<<std::endl;
status = db->Get(leveldb::ReadOptions(),key, &value);
if(!status.ok()) std::cerr<<key<<" "<<status.ToString()<<std::endl;
else std::cout<<key<<"==="<<value<<std::endl;
delete db;
return 0;
}
六、编译运行命令:
g++ -o test test.cpp -I../include -L../libleveldb -lleveldb
七、生成一个test文件:
运行:
八、中途遇到的snappy问题,我也试着安装了但是运行网上的命令还是有错。现在的这个命令是可以运行的。
使用过得网上不通过命令:
g++ -o test test.cpp ../leveldb/libleveldb.a -lpthread -I../leveldb/include
具体原因我也不是很清楚,如有编译成功的热心好友给我留言,谢谢。