怎樣把 Snappy安裝配置到自定義目錄


1.去官網http://code.google.com/p/snappy/下載snappy-1.1.1.tar.gz安裝包。




2.加壓到指定目錄

cd ~/snappy
tar -zxvf snappy-1.1.1.tar.gz
cd snappy-1.1.1
./configure
make
此時打住,如果繼續make install,相關的庫會被安裝到/usr/local/lib/下面,要自定義的話。閱讀makefile會發現一切都在
exec_prefix = ${prefix}
libdir = ${exec_prefix}/lib
prefix = /usr/local
接下來,你懂得,修改prefix爲你自定義目錄即可。
這裏我設置爲
prefix = ~/bin

3.使用snappy

簡單講下怎麼用
像我上面那樣設置的話,頭文件在~/include下,.a和.so都在~/bin下
c風格使用snappy-c.h
c++使用snappy.h

#include <unistd.h>
#include <stdio.h>
#include <errno.h>
#include <iostream>
#include <strings.h>
#include <string.h>
#include <stdlib.h>
#include <sys/time.h>
#include "snappy.h"
using namespace std;
string GeneratorData(int len)
{
string ss;
for(int i=0;i<len;++i)
{
ss += "2";
}
ss+="finsih!!";
return ss;
}
int main()
{
string s = GeneratorData(1024);
string compress_s;
int compress_len = snappy::Compress(s.c_str(), s.length(), &compress_s);
printf("inlen:%d,outlen:%d,ret:%d,compress_s:%s\n",s.length(),compress_s.length(),compress_len,compress_s.c_str());
string sRcovery;
bool bucom = snappy::Uncompress(compress_s.c_str(), compress_len, &sRcovery);
printf("sRcovery.len:%d,sRcovery:%s\n",sRcovery.length(),sRcovery.c_str() );
return 0;
}




編譯:
g++ -I$LOCAL_INC -o main main.cpp -L$LOCAL_LIB -lsnappy
LOCAL_INC 和LOCAL_LIB 是你安裝的目錄。
得到可執行的測試2進制文件。是否搞定?No,Compress等API依賴libsnappy.so.1這個動態庫,直接執行會找不到動態庫。
2個辦法:
1.在~/.profile裏設置環境變量  export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/lib
2.在/etc/ld.so.conf裏指定~/lib

至此,搞定,可以測試了。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章