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 的東西。這兩個具體有什么神奇的效果,以及性能測試怎么樣,得使用后測試才知道。現在可以先不適用這兩個庫。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM