libjpegをビルドする
libjpegは、JPEGのエンコード、デコードを行うためのライブラリである。
(http://ja.wikipedia.org/wiki/Libjpeg)
まず、Independent JPEG Groupからjpegsr7.zipをダウンロードし、適当な場所に展開する。
VS2008でビルドするので展開したファイルの中からmakexxxx.vc9となっているファイルを集める。
集めたファイルを次のようにリネームする。
makejsln.vc9 → libjpeg.sln libjpeg本体のソリューションファイル
makejvcp.vc9 → jpeg.vcproj libjpeg本体のプロジェクトファイル
makeasln.vc9 → jpegutl.sln jpegファイルを操作するユーティリティプログラムのソリューションファイル
makecvcp.vc9 → cjpeg.vcproj cjpegのプロジェクトファイル
makedvcp.vc9 → djpeg.vcproj djpegのプロジェクトファイル
makervcp.vc9 → jpegtram.vcproj jpegtramのプロジェクトファイル
maketvcp.vc9 → rdjpgcom.vcproj rdjpgcomのプロジェクトファイル
makewvcp.vc9 → wrjpgcom.vcproj wrjpgcomのプロジェクトファイル
次にjconfig.vcをjconfig.hとリネームする。
以上の作業が終了後、VS2008からlibjpeg.slnを読み込み、ビルドする。特にエラーは出ずにビルドは完了し、Releaseフォルダにjpeg.libができる。
次にjpegutl.slnを読み込み、ビルドをすると、cjpeg、djpeg、jpegtram、rdjpgcom、wrjpgcomの5つのユーティリティプログラムが作成される。
各プロジェクトはReleaseビルドしか設定されていないため、少なくとも、ライブラリ本体だけでもDebugビルドができるようにプロジェクトを変更する。
jpegプロジェクトのプロパティから構成マネージャを開き、アクティブソリューションの構成のリストボックスで新規作成を選択する。新しいソリューション構成のダイアログボックスが開くので名前の項目にDebug、設定のコピー元にReleaseを指定してOKボタンを押す。
プロパティページに戻って、Debug用に設定を変更する。変更した箇所は以下の通り
- 「C/C++:全般」→「デバッグ情報の形式」を「エディットコンティニュ用プログラムデータベース(/ZI)」
- 「C/C++:最適化」→「最適化」を「無効(/Od)」(抜けていました2010/03/01追加)
- 「C/C++:最適化」→「プログラム全体の最適化」を「いいえ」
- 「C/C++:プリプロセッサ」→「プリプロセッサの定義」の「NDEBUG」を「_DEBUG」
- 「C/C++:コード生成」→「簡易ビルドを行う」を「はい(/Gm)」
- 「C/C++:コード生成」→「基本ランタイムチェック」を「両方(/RTC1,/RTCsuと同等)」
- 「C/C++:コード生成」→「ランタイムライブラリ」を「マルチスレッドデバッグDLL(/MDd)
- 「C/C++:コード生成」→「浮動小数点モデル」を「Fast(/fp:fast)」
ウィザードから作ったlibファイル生成のためのプロジェクトを参考にしたので、もしかしたら過不足があるかも。
これでソリューション構成をDEBUGに変更してビルドするとDebugフォルダにjpeg.libができる。
ディスカッション
コメント一覧
Debug用設定の部分ですが、
私のところではビルドエラーがでたので、
「C/C++:最適化」→「最適化」を「無効(/Od)」に変更しました。
>>「C/C++:最適化」→「最適化」を「無効(/Od)」
これやらないとエラー出ます。抜けていました。
ご指摘ありがとうございます。