Memcached 是一個高性能的分佈式內存對象緩存系統。它經過將數據緩存在內存中來減小對數據庫和文件系統的訪問,減輕數據庫及操做系統的負擔,提升應用系統的速度。c++
目前已經不少系統應用了memcached,其最新版本爲memcached-1.4.5。隨着硬件技術的不斷提高,應用高性能服務器的場合愈來愈多,特別是64位系統。另外memcached是可跨平臺的,這就須要咱們常常會在32與64位系統,各類操做系統下編譯memcached。數據庫
Memcached官方網站是http://www.memcached.org/。你們下載的最新穩定版memcached-1.4.5能夠在LINUX和UNIX下順利編譯。如何在Windows下編譯會致使不少人疑惑。緩存
本文介紹如何在Windows系統下編譯memcached-1.4.5,供同行參考。bash
目標:編譯能在Intel� Xeon X7560/Windows Server Enterprise 2008 SP2(64bit) 系統下運行的memcached-1.4.5.exe服務器
使用計算機和軟件列表:app
編譯機:PC/Windows Server 2003 Enterprise Edition SP2(32bit)分佈式
編譯器:64位gcc編譯器memcached
編譯平臺:msys/ mingw-w64性能
msys:網站
下載MSYS-1.0.11.exe
下載地址:http://downloads.sourceforge.net/mingw/MSYS-1.0.11.exe
mingw-w64:
下載:mingw-w64-bin_i686-mingw_20110516.zip
下載地址 http://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Automated%20Builds/
注:這裏下載的是64位的gcc編譯包,若是要編譯32位平臺請下載mingw-w32-bin_i686-mingw_20110516.zip。另外要說明的是MinGW64和MinGW開源項目並非一個項目,前者是一個新項目,旨在把MinGW遷移到64位平臺下。
memcached-1.4.5:
下載我修改後的memcached-1.4.5的包。其中包含memcached-1.4.5、libevent-2.0.11-stable、pthreads-w32-2-8-0-release(時間匆忙,沒下載到64位的pthreads,你們若是下載到,能夠稍微修改下替換壓縮包裏面的pthreads-w32-2-8-0-release)代碼。
下載地址:http://download.csdn.net/source/3291154
已編譯好的可執行文件:http://download.csdn.net/detail/flxyzsby/3941243
(1)安裝MSYS-1.0.11.exe
MSYS,即Minimal GNU(POSIX)system on Windows,是一個小型的GNU環境,包括基本的bash,make等等。是Windows下最優秀的GNU環境。
安裝完以後,在菜單和C盤下能夠分別看到
此時,從菜單打開MSYS打開或者直接打開msys.bat能夠看到以下運行界面
執行gcc –v,出現沒法找到命令,由於咱們還未安裝gcc編譯器。
(2)配置參數
打開文件夾C:/msys/1.0/etc,找到fstab文件,若是沒有,能夠將fstab.sample重命名爲fstab。找到行
c:/mingw /mingw
修改成
c:/msys/1.0/mingw/ /mingw
若是已是修改後的設置,則不要動。
(3)安裝編譯環境
解壓縮mingw-w64-bin_i686-mingw_20110516.zip
拷貝其中的全部文件夾
bin
include
lib
libexec
mingw
share
x86_64-w64-mingw32
拷貝到C:/msys/1.0/mingw
而後將C:/msys/1.0/mingw/mingw下全部文件夾拷貝C:/msys/1.0/mingw,選擇覆蓋。
此時打開MSYS控制檯
輸入gcc –v,會顯示以下信息
$ gcc -v
Using built-in specs.
COLLECT_GCC=C:/msys/1.0/mingw/bin/gcc.exe
COLLECT_LTO_WRAPPER=c:/msys/1.0/mingw/bin/../libexec
0/lto-wrapper.exe
Target: x86_64-w64-mingw32
Configured with: ../../../build/gcc/src/configure --
prefix=/c/bb/vista64-mingw32/mingw-x86-x86_64/build/
/bb/vista64-mingw32/mingw-x86-x86_64/build/build/roo
-c++ --enable-fully-dynamic-string --disable-multili
Thread model: win32
gcc version 4.7.0 20110516 (experimental) (GCC)
從中咱們看到,gcc編譯的目標目標平臺爲x86_64-w64,即64位系統。
(1)將下載的memcached_1.4.5_win解壓縮到C:/msys/1.0/memcached目錄下
(2)打開msys控制檯切換到C:/msys/1.0/memcached目錄下,執行./ build.sh
(3)執行./ build.sh後,進行編譯。編譯完成後,會bin目下看到編譯後的結果。
memcached-1.4.5.exe是一個完整可執行文件,不須要任何庫文件(爲了方便已經將庫文件等集成到exe中)。將你的成果放到Windows Server Enterprise 2008 SP2(64bit)看看效果便可。由於目標系統是64位,因此在32位系統上執行可能會報以下錯誤。
時間有限,寫的比較匆忙,若是有問題,能夠聯繫我。