4

ソースをダウンロードし、構成を Release Library x64 に変更してビルドをヒットしました。それはすべてうまく構築され、いくつかのテストに合格しました。

次に、プロジェクトでlibpng(および任意のエラーを回避するためのzlib)を参照しましたが、libpng関数のいずれかを使用しようとするまで、すべてうまくビルドされます。(一部の typedef を使用できます)

tldr; libpng 関数を使用しようとすると、ランダムなエラーが発生します

libpng に関する情報がまったく見つかりません。あきらめて、より使いやすいライブラリを使用する必要がありますか?

編集: libpng および zlib ライブラリがあるパスを含めるようにライブラリ ディレクトリを設定しました。ライブラリ名をリンカー入力に追加しました (追加の依存関係)。これは、Visual Studio でライブラリを参照する標準的な方法だと思います

編集:

png_const_bytep header[8]; 
FILE* fp = fopen("test.png", "rb");
fread(header, 1, 8, fp);
png_sig_cmp(*header, 0, 8); // <--- ERROR, compiles fine without

そしていくつかのエラー:

  1. C4701: 初期化されていない可能性のあるローカル変数 'sig_bit' が使用されています (pngread.c 内)
  2. C2220: 警告はエラーとして扱われます - 「実行可能」ファイルが生成されません (pngread.c 内)
  3. LNK1257: コード生成に失敗しました

これらはどれも私のコードの一部ではなく、libpng の一部であることに注意してください。

4

2 に答える 2

0

まさにここで同じ問題。「警告をエラーとして扱う」をオフにして libpng を再構築する必要がありました。(libpng は lib ですが、私のアプリケーションはリンク時のコード生成を実行していたため、どういうわけかライブラリのソース コードからエラーが生成されました)。

于 2013-11-19T00:48:18.043 に答える