libpng を Visual C++ 5.0 でコンパイルする


画像ファイルフォーマットのニュースタンダードといえるPNGを扱うプログラムをVisual C++で作ってみましょう。

各アーカイブを入手する

libpng-1.0.1http://www.cdrom.com/pub/png/から入手可能です。

また、同様にzlib-1.1.2http://www.cdrom.com/pub/infozip/zlib/から入手してください。

それぞれのファイルを展開します。必要に応じてディレクトリを移動するなどして、次のようなディレクトリ階層にしてください。

libpng101 -+-libpng101
           +-zlib

次にこのMakefileをダウンロードして展開し、それぞれのディレクトリに配置します。

MS-DOSプロンプトからカレントディレクトリをzlibにして、nmakeと打てばzlibのビルドができます。ここで「コマンドまたはファイル名が見つかりません」などのエラーが出た場合はVisual C++のbinディレクトリにあるvcvars32.batなどを使用して環境変数を適切に設定してください。詳細はVisual C++のヘルプに書かれています。zlib.libができたらlibpng101の内側の方のディレクトリに移動して、同様にnmakeを起動すれば完成です。

ライブラリができたらサンプルを動かしてみましょう。適当なディレクトリを作成して、そこにlpng101のディレクトリから、png.h, pngconf.h, libpng.lib をコピーし、zlibのディレクトリから、 zlib.h, zconf.h, zlib.lib をコピーします。サンプルをコピーしてコマンドラインで以下のように打ちます。

cl pngout.c libpng.lib zlib.lib

ビルドが完了してpngout.exeを実行するとhogehoge.pngができます。 (くだらないサンプルですいません)

このページからダウンロードできるMakefileはVisual C++のライブラリとしてLIBCMT (コンパイルオプションで /MT 相当)を使用するので、Exeファイルを作成する場合は同じオプションでコンパイルしてください。 スタティックリンクなので実行ファイルサイズは少し大きめですが、ランタイムライブラリは要りません。

さきさん sakisan@st.rim.or.jp