Windows下編譯LevelDB

來源:互聯網
上載者:User

標籤:leveldb

Windows下編譯LevelDB


flyfish 2015-7-8


LevelDB是開源的存在磁碟上的key-value儲存 由google的Jeffrey Dean 和Sanjay Ghemawat編寫。


環境
作業系統:windows x64
編譯器: VC2010

配置

需要Boost庫支援,需要先將Boost庫編譯為64位版本


1檔案-》建立-》從現有代碼檔案建立新項目
開啟 從現有代碼檔案建立新項目 嚮導視窗


2要建立什麼類型的項目? 選擇Visual C++
3專案檔位置 選擇源碼所在位置leveldb-windows檔案夾所在位置 
這裡源碼檔案在E:\LIB\leveldb-windows目錄中,所以使用的是E:\LIB\leveldb-windows


4項目名稱填寫 LevelDB
5使用Visual Studio 項目類型選擇 靜態庫(LIB)項目
如果靜態庫(LIB)項目沒有匯入成功,可以先選擇Windows應用程式項目


6 在設定"調試"配置的設定 中 
前置處理器定義 填寫 LEVELDB_PLATFORM_WINDOWS;OS_WIN


包括搜尋路徑 填寫 E:\LIB\leveldb-windows;E:\LIB\leveldb-windows\include
不填寫也可以。後期可以在項目屬性中配置



檢查配置部分 Boost庫在E:\LIB\boost64目錄下
在項目的屬性頁面中 配置成64位平台


配置屬性-》常規-》配置類型
靜態庫(.lib)


配置屬性-》C/C++-》常規-》附加元件封裝含目錄
E:\LIB\boost64;E:\LIB\leveldb-windows;E:\LIB\leveldb-windows\include


配置屬性-》C/C++-》常規-》前置處理器-》前置處理器定義 
LEVELDB_PLATFORM_WINDOWS;OS_WIN


連結器-》常規-》附加庫目錄 或者 庫管理器-》附加庫目錄
E:\LIB\boost64\stage\lib

排除檔案
手動從項目中排除所有的 *_test.cc 和*_bench.cc 檔案


排除其他平台的檔案
port/port_android.cc
port/port_posix.cc
util/env_posix.cc
如果存在其他平台也排除
 

改源碼的地方
1 db\c.cc檔案中標頭檔unistd.h
unistd.h 是 C 和 C++ 程式設計語言中提供對 POSIX 作業系統 API 的訪問功能的標頭檔的名稱。是Unix Standard的縮寫。
windows下不支援.直接注釋即可
2 port\port.h檔案中
註明使用的是windows系統
在先行編譯中增加


#ifndef STORAGE_LEVELDB_PORT_PORT_H_#define STORAGE_LEVELDB_PORT_PORT_H_#include <string.h>// Include the appropriate platform specific file below.  If you are// porting to a new platform, see "port_example.h" for documentation// of what the new port_<platform>.h file must provide.#if defined(LEVELDB_PLATFORM_POSIX)#  include "port/port_posix.h"#elif defined(LEVELDB_PLATFORM_CHROMIUM)#  include "port/port_chromium.h"#elif defined(LEVELDB_PLATFORM_ANDROID)#  include "port/port_android.h"#elif defined(LEVELDB_PLATFORM_WINDOWS)// 新增部分#  include "port/port_win.h"#endif  // STORAGE_LEVELDB_PORT_PORT_H_#endif 




增加部分是
#elif defined(LEVELDB_PLATFORM_WINDOWS)
#include "port/port_win.h"


編譯產生64位的lib

已編譯好源碼和庫檔案



著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

Windows下編譯LevelDB

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.