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

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

Windows下编译memcached-1.4.5(32bit和64bit)的更多相关文章

  1. 07 在Windows下编译Memcached

    一:windows下编译Memcached (1)下载地址dll:http://down.51cto.com/data/442606 (2)在php下输出 echo phpinfo():查看php的版 ...

  2. [转] Windows下编译OpenSSL

    简述 OpenSSL是一个开源的第三方库,它实现了SSL(Secure SocketLayer)和TLS(Transport Layer Security)协议,被广泛企业应用所采用.对于一般的开发人 ...

  3. Windows下编译objective-C

    Windows下编译objective-C 2011-08-31 14:32 630人阅读 评论(0) 收藏 举报 windowscocoa工具objective clibraryxcode   目录 ...

  4. 在Windows下编译FFmpeg详细说明

    MinGW:一个可自由使用和自由发布的Windows特定头文件和使用GNC工具集导入库的集合,允许你生成本地的Windows程序而不需要第三方C运行时 MinGW,即 Minimalist GNU F ...

  5. 如何在WINDOWS下编译BOOST C++库 .

    如何在WINDOWS下编译BOOST C++库 cheungmine 2008-6-25   写出来,怕自己以后忘记了,也为初学者参考.使用VC8.0和boost1.35.0.   1)下载boost ...

  6. 在Windows下编译OpenSSL(VS2005和VC6)

    需要说明的是请一定安装openssl-0.9.8a .  openssl-1.0.0我没有编译成功. 如何在Windows下编译OpenSSL (Vs2005使用Vc8的cl编译器)1.安装Activ ...

  7. windows下编译java源文件的编码错误

    import java.util.Arrays;public class ArrayAsAReference{ public static void main(String[] args) { int ...

  8. Windows下编译SDL

    Windows下编译SDL的理由我就不多说了,无论用VS来编译或调试SDL库都是很方便的.而且SDL源代码中也包含了VC工程,你所要做的只是解压VC工程,进行适当的配置,然后编译.调试. 编译SDL大 ...

  9. Windows 下安装 Memcached

    Windows 下安装 Memcached 官网上并未提供 Memcached 的 Windows 平台安装包,我们可以使用以下链接来下载,你需要根据自己的系统平台及需要的版本号点击对应的链接下载即可 ...

随机推荐

  1. hdu 4349 求C(n,0),C(n,1),C(n,2)...C(n,n).当中有多少个奇数 (Lucas定理推广)

    Lucas定理:把n写成p进制a[n]a[n-1]a[n-2]...a[0],把m写成p进制b[n]b[n-1]b[n-2]...b[0],则C(n,m)与C(a[n],b[n])*C(a[n-1], ...

  2. FileBeat读取特征目录及特征文件,为不同的path生成不同的Kafka Topic

    进入日志收集及监控报警这个领域,感觉一切都要从新学习. 现在周五,这周有两天用来踩坑了. 作些记录. 第一个遇到的问题,就是不同的应用组件,在k8s里,会生成不同的日志,如何采集到这些不同的日志呢? ...

  3. ubuntu安装redis 和可视化工具

    方式一: 下载地址:http://redis.io/download,下载最新文档版本. 本教程使用的最新文档版本为 2.8.17,下载并安装: $ wget http://download.redi ...

  4. C语言:输入10个整数,找出其中绝对值最小的数

    1 输入10个整数,找出其中绝对值最小的数(10分) 题目描述 输入10个整数,找出其中绝对值最小的数 输入 十个整数 输出 绝对值最小的数 样例输入 -10 -2 30 40 50 60 70 80 ...

  5. 【LOJ】#2541. 「PKUWC2018」猎人杀

    题解 一道神仙的题>< 我们毙掉一个人后总的w的和会减少,怎么看怎么像指数算法 然而,我们可以容斥-- 设\(\sum_{i = 1}^{n} w_{i} = Sum\) 我们把问题转化一 ...

  6. 2017-2018 ACM-ICPC Pacific Northwest Regional Contest (Div. 1) B - Enlarging Enthusiasm dp好题

    B - Enlarging Enthusiasm 感觉做到过好多的dp题都会和单调性结合在一起. 思路:dp[ s ][ pre ][ res ] 表示的是已选择了s,上一个是pre, 还有res 的 ...

  7. gitlab-针对API,获取私有令牌

    Gitlab有一个强大的API系统,几乎所有的功能都可以在web中执行,当然也可以通过API来执行,为了使用API,需要从Gitlab中获取私有token. 执行步骤: 1. 登陆Gitlab服务器 ...

  8. 安装CDM遇到的坑

    其实主要就是一个坑,就是版本不对应的问题. 我的环境是centos6.5,而官方提供的版本是分别针对centos6和centos5的,之前我进行软件实施的时候,下载的是centos5...... ht ...

  9. java 里的内部类

    java里的内部类通常能帮我们隐藏一些具体实现,体现良好的封装效果. 内部类又分几种: 1.普通内部类 2.局部内部类 3.匿名内部类 4.静态内部类 普通内部类 先来看第一种普通的内部类,这种内部类 ...

  10. Python使用正则

    Python中使用正则的两种方式 在Python中有两只能够使用正则表达式的方式: 直接使用re模块中的函数 import re re_string = "{{(.*?)}}" s ...