Linux环境下levelDB源码编译与安装
2024-09-04 00:48:26
1、下载源码并编译
git clone https://github.com/google/leveldb.git cd leveldb //编译源码的时候需要安装cmake,并且版本需要大于3.9,我们选择下载安装包的方式安装
//文件下载解压
wget https://cmake.org/files/v3.12/cmake-3.12.2-Linux-x86_64.tar.gz //解压
tar zxvf cmake-3.12.2-Linux-x86_64.tar.gz
创建软链接
注: 文件路径是可以指定的, 一般选择在/opt 或 /usr 路径下, 这里选择/opt
mv cmake-3.12.2-Linux-x86_64 /opt/cmake-3.12.2
ln -sf /opt/cmake-3.12.2/bin/* /usr/bin/
//到此cmake环境配置完成,接下来可以编译代码
cd leveldb
mkdir -p build && cd build
cmake -DCMAKE_BUILD_TYPE=Release .. && cmake --build .
2、测试代码
demo.cc
#include <cassert>
#include <iostream>
#include <string>
#include <leveldb/db.h>
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());
std::string key = "apple";
std::string value = "A";
std::string get;
leveldb::Status s = db->Put(leveldb::WriteOptions(), key, value); if (s.ok()) s = db->Get(leveldb::ReadOptions(), key, &get);
if (s.ok()) std::cout << "读取到的与(key=" << key << ")对应的(value=" << get << ")" << std::endl;
else std::cout << "读取失败!" << std::endl;
delete db;
return 0;
}
g++ -o demo demo.cc -pthread -lleveldb -std=c++11
注意:一定要加-lpthread,因为leveldb有用到线程相关调用。
./demo
读取到的与(key=apple)对应的(value=A)
最新文章
- #研发中间件介绍#定时任务调度与管理JobCenter
- 分页进阶--ajax+jquery+struts2
- 华为RH2285安装过程及经验总结
- java攻城狮之路(Android篇)--Activity生命
- Python内置函数解析
- list转datatable c#
- joinfetch之意义
- 在vs2005中使用SVN进行版本管理
- 从两个集合里排除重复的写法(适用:DB表和字段都很多,表间有关联的情况)
- new Date()在IE,谷歌,火狐上的一些注意项
- adb :unknown host service
- Android应用开发-小巫CSDN博客client之嵌入有米广告
- mxnet:结合R与GPU加速深度学习
- OkHttp拆解之调用流程图
- TensorFlow实现Softmax Regression识别手写数字中";TimeoutError: [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败”问题
- Gradle--初识
- nmap比较详细的使用方法
- CentOS 7 zabbix实现微信报警
- page用法
- 精心收集的 48 个 JavaScript 代码片段,仅需 30 秒就可理解!