新トップページへ | Tip

VisualStudioで各種ライブラリの作成

Update : 15/02/01

 VisualStudioでオープンソースのプロジェクトをビルドしたときのメモです。

zlib
zlib1.2.8をVisualStudio2012(Desktop)でビルド
libpng
libpng1615をVisualStudio2012(Desktop)でビルド
oggVorbis
libogg1.3.2をVisualStudio2012(Desktop)でビルド
libvorbis1.3.4をVisualStudio2012(Desktop)でビルド



zlib1.2.8をVisualStudio2012(Desktop)でビルド

警告ダイアログを「OK」ボタンを押下してやり過ごす
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」に修正してみた。

・・・こんだけやると、普通にビルドが通るはず。

libpng1615をVisualStudio2012(Desktop)でビルド

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です。

ビルドする

これで、ビルドをかければ、特にエラーなくビルドできるはず。

libogg1.3.2をVisualStudio2012(Desktop)でビルド

libogg-1.3.2.zipを解凍する。
「win32\VS2010」ディレクトリの中に、VisualStudio用のソリューションファイルがある。
「libogg_static.sln」と「libogg_dynamic.sln」があるが、ここではスタティックライブラリを作ることにして、「libogg_static.sln」を開く。

警告ダイアログを「OK」ボタンを押下しやりすごす

以下のようなダイアログが出るが、「OK」ボタンを押下する。

プロジェクトの設定を更新

以下のようなダイアログが出るが、そのまま「更新する」ボタン押下でOK。
ビルドする
普通にビルドできるはずです。

libvorbis1.3.4ををVisualStudio2012(Desktop)でビルド

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。

ビルドする

ワーニングは出るものの、エラーなくビルドできるはずです。