leveldb之安装到系统目录脚本

leveldb自带的Makefile中居然没有install

那我自己写一个脚本得了:

#!/bin/bash


checkRoot(){
if [ ! $(id -u) = 0 ];then
echo "need be root!,your id -u is :$(id -u)"
exit;
fi
}

PREFIX=/usr
INCLUDE=$PREFIX/include
LIB=$PREFIX/lib
help(){
echo "$0 install|uninstall"
}
check(){
#verify
ls $INCLUDE/leveldb
ls -l $LIB/libleveldb.a $LIB/libmemenv.a
}
myinstall(){
checkRoot
cp libleveldb.a $LIB/libleveldb.a
cp libmemenv.a $LIB/libmemenv.a
cp -R include/leveldb $INCLUDE/leveldb
check
}
myuninstall(){
checkRoot
if [ -d $INCLUDE/leveldb ] ;then
rm -R $INCLUDE/leveldb
fi;
if [ -f $LIB/libleveldb.a ] ;then
rm $LIB/libleveldb.a
rm $LIB/libmemenv.a
fi;
}
if [ ! -z $1 ];then
if [ $1 = "-h" -o $1 = "-?" ];then
help
exit 0
fi
if [ $1 = "install" ];then
myinstall
echo "Install done..."
exit
fi;
if [ $1 = "uninstall" ] ;then
myuninstall
echo "Uninstall done..."
exit
fi;
if [ $1 = "check" ];then
check
exit;
fi;
fi;

help

其实还可以添加 --prefix参数 指定自己的位置。很简单的脚本

运行脚本的方法:首先make ,生成libleveldb.a和libmemenv.a的时候就可以运行此脚本了!

将此脚本保存为文件,比如命名为 install.sh

然后命令行下输入 chmod +x ./install.sh
 输入./install.sh 显示基本信息

sudo ./install.sh install #安装leveldb到系统目录/usr/lib和/usr/include中

sudo ./install.sh uninstall # 从系统目录中删除 /usr/lib 和/usr/include  的leveldb的.a 和头文件。

./install.sh check 可以查看是否在系统目录中有这些文件,并打印出来。

使用leveldb的方法就是 你编写的leveldbtest.cpp 后,里面直接使用头文件即可,编译用:

g++  leveldbtest.cpp -o leveldbtest.out -lleveldb -I/usr/include/leveldb -L/usr/lib -lpthread

如果你编译安装了 snappy的话 还要加上 -lsnappy -I/usr/loca/include -L/usr/local/lib ,这个是一个和数据库压缩相关的东西。。

leveldb还支持 google的perfecttools,具体有什么用,我还真不太清楚,好像是优化了malloc 的东西。这两个具体有什么神奇的效果,以及性能测试怎么样,得使用后测试才知道。现在可以先不适用这两个库。

转载请注明出处:http://www.cnblogs.com/ayanmw 多谢

------------------------------------------------------------------------------------------------

一定要专业!本博客定位于 ,C语言,C++语言,Java语言,Android开发和少量的Web开发,之前是做Web开发的,其实就是ASP维护,发现EasyASP这个好框架,对前端后端数据库 都很感觉亲切啊。. linux,总之后台开发多一点。以后也愿意学习 cocos2d-x 游戏客户端的开发。

原文地址:https://www.cnblogs.com/ayanmw/p/2400776.html