Windows下編譯memcached-1.4.5(32bit和64bit)

Windows下編譯memcached-1.4.5(32bit和64bit) 收藏

作者:徐兆元( [email protected]

1. 簡介

Memcached 是一個高性能的分佈式內存對象緩存系統。它通過將數據緩存在內存中來減少對數據庫和文件系統的訪問,減輕數據庫及操作系統的負擔,提高應用系統的速度。

目前已經很多系統應用了 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 ,供同行參考。

2. 編譯目標和環境

目標:編譯能在 Intel® Xeon X7560/Windows Server Enterprise 2008 SP2(64bit) 系統下運行的 memcached-1.4.5.exe

使用計算機和軟件列表:

           編譯機: PC/Windows Server 2003 Enterprise Edition SP2(32bit)

           編譯器: 64 gcc 編譯器

           編譯平臺: msys/ mingw-w64

3. 軟件下載準備

          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

 

4. 安裝編譯環境

       (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 位系統。

5. 編譯 memcached-1.4.5

     (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 位系統上執行可能會報如下錯誤。

 

時間有限,寫的比較匆忙,如果有問題,可以聯繫我。

發佈了13 篇原創文章 · 獲贊 0 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章