VisualStudioで各種ライブラリの作成
Update : 15/02/01
VisualStudioでオープンソースのプロジェクトをビルドしたときのメモです。
zlib128.zipを解凍したディレクトリの中の「contrib\vstudio\vc11」の中にある「zlibvc.sln」をダブルクリックしてプロジェクトを開く。 プロジェクトを開くと、以下のような、ダイアログがでる。
「はい」ボタンを押下する(「はい」を押さないとプロジェクトを開けない)。
上記のダイアログは複数回出てくるので、全部OKボタンを押す。
次にリンカの設定をする
そのままビルドすると「error LNK2026: モジュールは SAFESEH イメージには安全ではありません。」というエラーが出るので、リンカの設定を変更する。
赤枠で囲ったプロジェクトを対象に
以下の設定を行う。
さらに、defファイルの書式が違うと怒られるので、手で修正する
「error LNK1118: 'VERSION' ステートメントに構文エラーがあります。 E:\repository\svn\gdlSrc\lib\zlib\zlib-1.2.8\contrib\vstudio\vc11\zlibvc.def」こんなエラーが出る(ファイルパスは、私の環境のもの)
zlibvc.defファイルを開き、4行目を以下のように修正する
修正前:VERSION 1.2.8
修正後:VERSION 1.28
※単純に書式が違うから怒られているだけ。ドットの数が多いから書式エラーになっている。
なので、どう修正してもよいが、なんとなく「1.2.8」から「1.28」に修正してみた。
・・・こんだけやると、普通にビルドが通るはず。
pngはzlibと依存関係がある。
なので、ビルドの際、zlibのソースも必要になる。どのバージョンを用意すればいいのかは、よくわからんかった。とりあえず最新バージョンでw
プロジェクトを開く
「lpng1616.zip」を解凍し、「projects\visualc71」ディレクトリの中の「libpng.sln」をダブルクリップしてプロジェクトを開く。
すると、以下のようなダイアログが出てくる。(「projects\vstudio」の中の「vstudio.sln」を使うのが普通か。。。これを書いたときは「visualc71」ディレクトリの中のプロジェクトを使ったが、後日、「vstudio」の中のプロジェクトを使っても、ほぼ同じやりかたでできた。変わったところは、zlibのディレクトリ名が「zlib-1.2.8」になったぐらい)
図の通り「OK」ボタンを押下してプロジェクトを変換する。
zlibのソースを用意する
zlibのソースをDLし(とりあえず、最新バージョン)、解凍する。
libpngのプロジェクト設定で、プロジェクトのディレクトリの一個上のディレクトリに「zlib」ディレクトリがあり、そこにzlibのソースが入っている想定になっている。
なので、「zlib」を解凍後(ファイル名が「zlib-1.2.8.zip」とかなので、そのまま解凍するとディレクトリ名が「zlib-1.2.8」になる想定)、その解凍したディレクトリ名を「zlib」にリネームし、libpngを解凍したディレクトリと同じディレクトリにいれる。
まぁ、こんな面倒な書き方をしていますが、pnglibのディレクトリと同列にzlibのソースを置いておけばOKです。
ビルドする
これで、ビルドをかければ、特にエラーなくビルドできるはず。
libogg-1.3.2.zipを解凍する。
「win32\VS2010」ディレクトリの中に、VisualStudio用のソリューションファイルがある。
「libogg_static.sln」と「libogg_dynamic.sln」があるが、ここではスタティックライブラリを作ることにして、「libogg_static.sln」を開く。
警告ダイアログを「OK」ボタンを押下しやりすごす
以下のようなダイアログが出るが、「OK」ボタンを押下する。
プロジェクトの設定を更新
以下のようなダイアログが出るが、そのまま「更新する」ボタン押下でOK。ビルドする
普通にビルドできるはずです。
libvorbisはliboggに依存していますので、liboggのソースとビルドした結果が必要です。ここでは、libogg1.3.2.zipをダウンロードしてきて、それを使うとします。
まずは、libogg1.3.2.zipを解凍しておきます(解凍すると「libogg-1.3.2」という名前のディレクトリができるはず)。
次に、libvorbis-1.3.4.zipを解凍する。
解凍すると「libvorbis-1.3.4」というディレクトリができるはず。
「libogg-1.3.2」と「libvorbis-1.3.4」ディレクトリは、同じ階層のディレクトリに配置します。これは、プロジェクトの設定で、libvorbisが同じ階層にliboggがあるとおもって参照しているためです。
libvorbis-1.3.4の「win32\VS2010」ディレクトリの中に「libogg.props」ファイルがあるので、こちらを最初に編集します(同じディレクトリ内にある「README」にその旨がかいてあります)。
「LIBOGG_VERSION」タグに、使用するogglibのバージョンに書き換えます。なので、LIBOGG_VERSIONタグの中には1.3.2に書き換えます。
上記までの手順が終わったら、まずは、「libogg-1.3.2」のほうのビルドを行います(ソースだけではなく、libなども参照しているみたいで、ビルドしてないとエラーがlibがみつからないとかエラーがでます)。
liboggのビルドについてはこちらを参照してください。
次にlibvorbisのディレクトリ(「win32\VS2010」)に「vorbis_dynamic.sln」「vorbis_static.sln」があるので、どちらかのソリューションファイルを開きます。
ここではスタティックライブラリを作ることとして、「vorbis_static.sln」をダブルクリックして開きます。
警告ダイアログを「OK」ボタンを押下しやりすごす
以下のようなダイアログが出るが、「OK」ボタンを押下する。
何回か出てくるので、常に「OK」ボタンを押下でOK。
プロジェクトの設定を更新
以下のようなダイアログが出るが、そのまま「更新する」ボタン押下でOK。
ビルドする
ワーニングは出るものの、エラーなくビルドできるはずです。