• Windows下编译memcached1.4.5(32bit和64bit) .


    作者:徐兆元(FLxyzsby@163.com

    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

    已编译好的可执行文件:http://download.csdn.net/detail/flxyzsby/3941243

    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: http://www.cnblogs.com/../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位系统上执行可能会报如下错误。

    时间有限,写的比较匆忙,如果有问题,可以联系我。

  • 相关阅读:
    s3c2440——按键中断
    s3c2440——swi异常
    S3C2440的七种模式之——未定义模式(去掉bl print1 bug解决)
    Entity Framework DBContext 增删改查深度解析
    Git换行符是如何精确控制的
    Entity Framework 乐观并发处理
    Session, Token and SSO 有什么区别
    2017让我受益最大的那些书--别找了,都在这里
    GDB scheduler-locking 命令详解
    Java web servers 间是如何实现 session 同步的
  • 原文地址:https://www.cnblogs.com/zcm123/p/3008557.html
Copyright © 2020-2023  润新知