« 追加検討機能:画像読込みのマルチスレッド化 | メイン | マウスカーソル画像の仕様変更に関して »

2013年04月23日

吉里吉里Z 開発:: zlib 1.2.7 を VS2012 で使えるようにビルド

    

ランタイムライブラリをマルチスレッド、スタティックライブラリでリンク、リンク時の最適化ありで Visual Studio 2012 (C++) でリンクできるように zlib 1.2.7 をビルドするには makefile に少し手を加える必要がある。
そのままビルドすると「モジュールは SAFESEH イメージには安全ではありません。」などと出る。

変更するのは win32/Makefile.msc で、アセンブリを使う形でメイクする場合。

CFLAGS = -nologo -MD -W3 -O2 -Oy- -Zi -Fd"zlib" $(LOC)

CFLAGS = -nologo -MT -W3 -O2 -GL -Oy- -Zi -Fd"zlib" $(LOC)

MD を MT に変更して、GL を足す。
デバッグ版は、MTd にする必要がある。


ASFLAGS = -coff -Zi $(LOC)

ASFLAGS = -coff -Zi -safeseh $(LOC)

safeseh を足す。


LDFLAGS = -nologo -debug -incremental:no -opt:ref

LDFLAGS = -nologo -debug -LTCG -incremental:no -opt:ref

LTCG を足す。


ARFLAGS = -nologo

ARFLAGS = -nologo -LTCG

LTCG を足す。

上記修正を加えた後メイクして出来た zlib.lib を使えば問題なくリンクできるようになる。



投稿者 Takenori : 2013年04月23日 22:17




comments powered by Disqus
Total : Today : Yesterday : なかのひと