Tech Notes

VisualStudioでzlibをビルドする際に気を付けるべき2点

ちょっと必要があってzlibを導入した際にちょっとだけん?ってなった所があったのでメモ。

2017年1月現在の最新版であるzlib 1.2.11における内容です。

とりあえず公式hpからソースコードのzip(「zipfile format」って書いてあるとこ)を落としてきて、展開する。そうすると中にWin32ってディレクトリがあったので覗いてみると、VisualC.txtってファイルがあるので、これかなと思って読んでみた。

こいつによれば、VC++でコンパイルしたきゃ「contrib\vstudio」なるディレクトリの中に種々プロジェクトファイルがあるのでそこから自分の環境に合ったやつを使えということらしい。確かに展開したzipのトップから辿ってみるとその名前のディレクトリがある。そしてその中身はVC++の各バージョン名の付いたディレクトリ群だった。

自分はVS2015を使っていたので「vc14」を選択し、中のソリューションファイルを開いてそのままビルドすれば良いのだろうと思っていたのだが、残念なことにエラーが起きてしまった。修正すべき点は以下の二つ。

・プロジェクト「testzlib」と「zlibvc」のプロパティ→構成プロパティ→リンカ―→詳細設定→安全な例外ハンドラーを含むイメージ

この項目を「すべての構成」「すべてのプラットフォーム」で「いいえ(/SAFESEH:NO)」に設定してください。

・プロジェクト「zlibvc」のプロパティ→構成プロパティ→ビルド イベント→ビルド前のイベント→コマンド ライン

この項目を「Debug」「x64」において、

cd ..\..\masmx64
bld_ml64.bat

に書き換えて下さい。要するに「contrib\」という余計な部分を取り払ってください。

こんな感じにプロジェクトの設定を修正したら大体なんとかなりました。zlib開発陣の皆さんには次回更新時に直してもらいたいです…