2015年3月5日木曜日

Windows環境でmemcachedをコンパイルする

ここに来る人はいろんな都合でWindowsPCでウェブサーバを立てて
速度問題などが浮上してから高速化できるmemcachedというものを見つけたんだけど
公式はソースのみしか公開してない!
しかも海外でコンパイル済みの見つけたけどもバージョンが古くて
できれば早いのが欲しいって思って来たんだと思う。

と言うわけでやり方。

http://groups.google.com/group/memcached/browse_thread/thread/8c7eea241def70f9
http://cefiro.homelinux.org/resources/doc/MinGW/setting-02.html

まずソース(2011.12.07時点最新)
1.libevent-2.0.16-stable
2.memcached-1.4.10

コンパイルはMinGWで行う。

STEP.1 MSYSのパス設定
/etc/profileを開き

if [ $MSYSTEM == MINGW32 ]; then
export PATH=".:/usr/local/bin:/mingw/bin:/bin:$PATH"
else
export PATH=".:/usr/local/bin:/bin:/mingw/bin:$PATH"
fi
export PATH="$PATH:/usr/local/lib" <----これを追加。  

STEP.2 MSYSを起動。
<libeventコンパイル>
./configure --enable-static --disable-shared
make
make install

<mcachedコンパイル>
./configure
make

もしここで--with-libevent=/path/

的なエラーが出た場合は、
libeventのスタティックライブラリが作成失敗したか、
パスが通ってない場合があるので、
もしパスがあやしいなと思ったら
libeventでmake installを実行した時のログを見て
パスを指定しなおしてください。
それでもうまくいかないならmingwのlibやbinフォルダはパスが通ってるので、
/usr/local配下のファイルをそっくり





MSYSを起動して、
echo $PATHで
/usr/local/libのパスが通っているのを確認してからコンパイル作業に入る。


~番外編~
1.VC++ 2010のコマンドプロンプト上でコンパイルして、ライブラリファイルを作る。
nmake -f makefile.nmake

2.通信Socket回りなど移植作業が面倒なので、MinGWをインストール。
./configure
make
これでexeファイル完成。

0 件のコメント:

Androider