zlib と libpng のスタティック ライブラリ ビルドをセットアップしました。どちらも .lib ファイルに正常にコンパイルされます。MSVC2010を使用しています。
このセットアップでは、libpng.lib を使用するには、zlib.lib にもリンクする必要があります。これを回避するために、lib.exe を使用して zlib を libpng に直接リンクしようとしています。私の呼び出しは次のようになります。
call "C:/Program Files (x86)/Microsoft Visual Studio 10.0/VC/bin/lib.exe" /OUT:x64\Release\libpng2.lib x64\Release\libpng.lib ..\zlib\x64\Release\zlib.lib /LTCG
両方のプロジェクト設定で、明示的に「Librarian->General->Target Machine」を MachineX64 に設定しました。そして、dumpbin を使用して、関連する zlib.lib と libpng が両方とも x64 用にコンパイルされていることを確認できます。
また、「一般 -> プログラム全体の最適化」と「C/C++ -> 最適化 -> プログラム全体の最適化」の値は同じです。
この問題は、x64 リリース構成でのみ発生します。x86 デバッグ、x86 リリース、および x64 デバッグはすべて正常に動作します。
編集:具体的には、問題は C1905/LNK1257 エラーが発生することです:
C1905: Front end and back end not compatible (must target same processor).
LNK1257: code generation failed