iPhoneプロジェクトにlibpngを追加しようとしています。
.cファイルと.hファイルを独自のディレクトリ「thirdparty/libpng /」にコピーし、png.hをテクスチャクラスにインクルードしました。
#ifndef PNG_H
#include "thirdparty/libpng/png.h"
#endif
この時点で、私のプロジェクトは警告やエラーなしでうまくコンパイルされます。
次に、テクスチャがpngであるかどうかを確認する関数を追加しようとしましたが、png.hが含まれていても、png_sig_cmpでコンパイルエラーが発生します。
#define PNG_BYTES_TO_CHECK 4
int GETexture::CheckIfValidPNGTexture( const char* pTextureName, FILE **ppFp )
{
char buf[PNG_BYTES_TO_CHECK];
/* Open the prospective PNG file. */
if ((*ppFp = fopen(pTextureName, "rb")) == NULL)
return 0;
/* Read in some of the signature bytes */
if (fread(buf, 1, PNG_BYTES_TO_CHECK, *ppFp) != PNG_BYTES_TO_CHECK)
return 0;
/* Compare the first PNG_BYTES_TO_CHECK bytes of the signature.
Return nonzero (true) if they match */
return(!png_sig_cmp(buf, (png_size_t)0, PNG_BYTES_TO_CHECK)); // <- COMPILE ERROR
}
私が得るエラーは次のとおりです:'png_sig_cmp'の呼び出しに一致する関数がありません
ヘッダーは間違いなく含まれています。「sdfdd」のようにランダムに入力しようとすると、コンパイルエラーが発生し、そのヘッダーファイルを解析していることが示されます。
何か案は?