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位系统上执行可能会报以下错误。
时间有限,写的比较匆忙,若是有问题,能够联系我。