1

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
4

1 に答える 1