起因
每次重做系统都要重新编译Memcahed等软件,还要重新配置,麻烦的要死。肯定有朋友想说了,用brew呀,小弟不是很了解brew等软件的运作,并且这对于一个使用电脑有洁癖的人来说,不能保证文件都是在自己定义的路径下是很难接受的。于是就想“为啥不能像Windows那样复制过来直接用呢?”,于是就有了静态编译Memcached的想法。
静态编译: 编译器在编译可执行文件的时候,将可执行文件需要调用的对应动态链接库(.so或.lib)中的部分提取出来,链接到可执行文件中去,使可执行文件在运行的时候不依赖于动态链接库。
准备工作
操作步骤
libevent是Memcached依赖的网络库,所以先静态编译libevent再编译Memcached。
一、编译libevent
首先解压缩libevent的源码。我解压到了桌面上:
/Users/lipangeng/Desktop/source/Lib/libevent/libevent-2.0.22-stable
通过终端进入源码目录。
cd /Users/lipangeng/Desktop/source/Lib/libevent/libevent-2.0.22-stable
配置编译选项。
./configure --prefix=/Users/lipangeng/Desktop/binary/Lib/libevent/2.0.22 --enable-static --disable-shared
一共配置了三个属性。
- prefix:安装位置
- enable-static:启用静态编译
- disable-shared:关闭动态编译,不编译成动态库
编译并安装
make && make install
编译后
/Users/lipangeng/Desktop/binary/Lib/libevent/2.0.22
的目录结构如图所示。
二、编译Memcached
解压Memcached源码,我解压到了
/Users/lipangeng/Desktop/source/Cache/Memcached/memcached-1.4.23
通过终端进入源码目录。
cd /Users/lipangeng/Desktop/source/Cache/Memcached/memcached-1.4.23
配置编译选项
./configure --prefix=/Users/lipangeng/Desktop/binary/Cache/Memcached/1.4.23 --with-libevent=/Users/lipangeng/Desktop/binary/Lib/libevent/2.0.22 --enable-64bit
一共配置了三个属性
- prefix:文件安装位置
- with-libevent:libevent静态库路径
- enable-64bit:编译64位版本
编译并安装
make && make install
编译后
/Users/lipangeng/Desktop/binary/Cache/Memcached/1.4.23
目录结构如图:
成果
到目前为止我们成功获取到了memcached的运行文件。复制到任意位置都可以运行。另附上运行脚本以及下载地址。
运行脚本
#/bin/bash
echo 启动Memcached 1.4.23
#memcached 文件所在路径
cd /Users/lipangeng/Documents/Developer/Extension/Cache/Memcached
./memcached -p 11211 -m 512 -vvv
将以上命令保存即可,并用
chmod a+x [文件名]
命令增加执行权限。以后双击就可以执行了。