小明思考

          Just a software engineer
          posts - 124, comments - 36, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          leveldb研究 - 編譯/調(diào)試

          Posted on 2012-03-08 11:44 小明 閱讀(4839) 評論(1)  編輯  收藏 所屬分類: 分布式計算
          leveldb是 google對bigtable的一個簡化版的開源實現(xiàn),很有研究價值。

          我的編譯環(huán)境:ubuntu 32&g++ 4.6

          1.安裝git并下載代碼

          sudo apt-get install git-core
          git clone https:
          //code.google.com/p/leveldb/

          2. 編譯leveldb

          cd leveldb
          .
          /build_detect_platform
          make

          為了能夠調(diào)試,修改Makefile為debug mode(B模式)
          OPT ?= -g2

          編譯后會生成庫文件:libleveldb.a

          3. 編寫測試程序
          ldbtest.cpp
          #include <iostream>
          #include 
          "leveldb/db.h"

          using namespace std;
          using namespace leveldb;

          int main() {
              DB 
          *db ;
              Options op;
              op.create_if_missing 
          = true;
              Status s 
          = DB::Open(op,"/tmp/testdb",&db);

              
          if(s.ok()){
                  cout 
          << "create successfully" << endl;
                  s 
          = db->Put(WriteOptions(),"abcd","1234");
                  
          if(s.ok()){
                      cout 
          << "put successfully" << endl;
                      
          string value;
                      s 
          = db->Get(ReadOptions(),"abcd",&value);
                      
          if(s.ok()){
                          cout 
          << "get successfully,value:" << value << endl;
                      }
                      
          else{
                          cout 
          << "get failed" << endl;
                      }
                  }
                  
          else{
                      cout 
          << "put failed" << endl;
                  }
              }
              
          else{
                  cout 
          << "create failed" << endl;
              }
              delete db;
              
          return 0;
          }
          注意link的時候需要加上-lpthread.

          運行后得到結(jié)果:(Eclipse中運行)


          評論

          # re: leveldb研究 - 編譯/調(diào)試  回復(fù)  更多評論   

          2012-03-15 14:47 by ayanmw
          給你補(bǔ)充下:
          編譯命令為g++ ldbtest.cpp -o ldbtest -L. -I./include -lpthread -lleveldb

          (工作目錄就是leveldb目錄中) include下面是leveldb的頭文件,-L 搜索library 為了libleveldb.a能夠被調(diào)用。

          另外,編譯的時候 可以將Makefile中說的snappy 壓縮 也帶上,還有谷歌perfecttools ,這個可選。壓縮還是有必要的吧。
          主站蜘蛛池模板: 曲麻莱县| 杭锦后旗| 普安县| 仁怀市| 阜平县| 九寨沟县| 大姚县| 伊春市| 平度市| 玉门市| 鹿泉市| 海林市| 普陀区| 广丰县| 普宁市| 剑川县| 西畴县| 临朐县| 南通市| 寻乌县| 枞阳县| 河东区| 宣化县| 石渠县| 闸北区| 平昌县| 阿拉善盟| 加查县| 丹东市| 同心县| 潜山县| 阳山县| 额济纳旗| 那坡县| 疏附县| 常州市| 黄山市| 灵宝市| 湛江市| 资中县| 屏东市|