民芸的プログラミング 〜ソフトウェア開発日記〜

アクセスカウンタ

zoom RSS Namazu を Mingw でコンパイル

<<   作成日時 : 2009/06/24 23:25   >>

ブログ気持玉 0 / トラックバック 0 / コメント 0

書いておかないとまたいつか同じ失敗をしそうなので。
知人が namazu.exe を組み込んだアプリケーションを開発したと言って、見せてくれた。
それは遠回しに「テストしてくれ」と言っているのだろうと思い、色々試していたところ、namazu.exe のサイズが 1MB 以上もあることに気付いた。

いつの間に namazu.exe ってこんなに大きくなったのだろう?
と思いながらプロパティを見てみると、あの寺西氏がコンパイルした、事実上純正(?)の Namazu-2.0.18 Windows 版のバイナリだった。

Namazu って、確か、Visual C++ でコンパイルしようとすると、環境整備が面倒なんだよな...だから寺西氏には感謝している...のだけれど、Mingw でどうにかならないかなと考え、Namazu 2.0.19 のソースをダウンロードしてきて手元の環境でサクッと configure; make やってみた。
するとあっさりコンパイル成功。namazu.exe のサイズも 200KB 少々と、なかなかいい手応え。
msvcrt.dll が別途必要になるのだが、これも Windows Me 以降は、Windows に標準で搭載されている。

じゃあ、こっちの野良ビルド namazu.exe のほうがいいじゃん、今日のブログのネタにもしよう、と思ってさらに裏を取っていたところで、恥ずかしい事態に気付いた。
Namazu のメーリングリストのこのあたりの議論に詳しい。
http://www.namazu.org/pipermail/namazu-devel-ja/2006-December/001414.html

msvcrt.dll を使うと、Windows Vista で挙動がおかしくなるのだそうだ。

じゃあ、どうにかして、msvcrt.dll を使わずにコンパイルする方法はないものか、ということで、
MinGW GCCでlibcとしてmsvcrt.dll以外を使うまとめ
このあたりの情報を参考に、-lmsvcr71オプションを付けてみたり、ライブラリファイルの名前を変えてみたりしてチャレンジしたものの、結局、今日は納得の行く結果は得られなかった。

寺西氏がコンパイルしたバイナリは、こういったライブラリが静的に組み込まれている。ファイルサイズが大きくなる代わりに、Windows Vista でも安定して使えるようになっていたわけだ。
考えが深い。

テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
Namazu を Mingw でコンパイル 民芸的プログラミング 〜ソフトウェア開発日記〜/BIGLOBEウェブリブログ
文字サイズ:       閉じる