mongoose - a small webserver
2009.04.05 Sunday 02:25
Google code: mongoose はfootprintが小さいwebサーバである.WebサイトにはLinux 2.6で35kBとあるが,試しにwindowsでコンパイルしたら60KBだった.これだけ小さいとちょっとwebサーバ機能を追加したいといった用途に使えそう.
まだ発展途上ではあるが,期待が持てるソフトである.
まだ発展途上ではあるが,期待が持てるソフトである.
Windowsでのコンパイルは,Visual C++ Express 2005 + Microsoft Windows SDKで行った.説明には nmake windows でコンパイルできると書かれていたのだが,何度やってもws2_32.libが見つからない旨のエラーが出る.問題はmakefile中で変数LIBが(UNIX用に)定義されていたところにあった.
VC2005+SDK用環境設定
次にSSLを外すために/DNO_SSLを指定したところ,リンクエラーとなった.SSLが定義されていないとmg_set_ssl_password_callbackが未定義となるのが原因.以下のようにダミー関数を作ってコンパイルしたらサイズは56KBになった.
listenするアドレスが0.0.0.0に固定されているとかいろいろ細かい突っ込みはあるが,小さいのでカスタマイズして使うことも十分可能だと思う.
VC2005+SDK用環境設定
Set BUILDTOOL=Visual C++ 2005 and Platform SDKmakefile中のWINOPTをデバッグ無しとし,/MTを/MDに変えてコンパイルしてみたら,60kBのexeファイルとなった.
Set VSINSTALLDIR=C:\Program Files\Microsoft Visual Studio 8
Set PSDKDIR=C:\Program Files\Microsoft Platform SDK
Set Path=%PSDKDIR%\Bin;%path%
Set Path=%VSINSTALLDIR%\VC\bin;%VSINSTALLDIR%\VC\vcpackages;%PATH%
Set Path=%VSINSTALLDIR%\Common7\IDE;%PATH%
Set LIB=%VSINSTALLDIR%\VC\lib;%PSDKDIR%\Lib;%LIb%
Set Include=%PSDKDIR%\Include;%Include%
Set INCLUDE=%VSINSTALLDIR%\VC\include;%INCLUDE%
次にSSLを外すために/DNO_SSLを指定したところ,リンクエラーとなった.SSLが定義されていないとmg_set_ssl_password_callbackが未定義となるのが原因.以下のようにダミー関数を作ってコンパイルしたらサイズは56KBになった.
void
mg_set_ssl_password_callback(struct mg_context *ctx, mg_spcb_t func)
{
listenするアドレスが0.0.0.0に固定されているとかいろいろ細かい突っ込みはあるが,小さいのでカスタマイズして使うことも十分可能だと思う.
Comments