1

私はexiflibが初めてです。exiflib ソース ファイル (libexif-0.6.20.zip) をダウンロードし、VC++ プロジェクトに含めました。ビルドしようとすると、いくつかのリンカ エラーが発生します。

未解決の外部シンボル _exif_entry_get_value、シンボル _exif_format_get_name ..

どんな助けでも大歓迎です..

4

1 に答える 1

1

libexif を MSVC++ でコンパイルするのは、ちょっとしたハック作業です。MSVC が実装しないことを選択した関数を使用します。以下の VS2010 プロジェクトの実例を参照してください (ファイルのダウンロードが気に入らない場合は、以下の動作に必要な変更についての説明にスキップしてください)。

https://www.dropbox.com/s/l6wowl8pouux01a/libexif-0.6.21_CompiledInVS2010%2BExample.7z?dl=0

詳しく説明すると、「ハック」が必要な問題は次のとおりです (LibExif readme-win32.txt ドキュメントで示唆されているように)。

  • Libexif はいくつかの場所でインラインを使用しますが、これは VS for C では定義されておらず、C++ のみで定義されています (これを参照)

  • Libexif は、VS で定義されていない snprintf を使用します (こちらを参照) 。

  • ./configure コマンドを使用せずに config.h を自分で作成する必要があります。スクリプトを一通り読むことはできますが、そのほとんどは Windows VS2010 では意味がありません。

  • GETTEXT_PACKAGE はおそらく構成ファイルで設定されているため、定義する必要があります。それが正しいかどうかはわかりませんが、UTF-8 を選択するだけです。

  • VS の C では、関数内に特定の方法で新しい変数を作成することができないため、.c ファイルから .h ファイルに移動する必要があるランダムな符号なし静的 *がありました。

上記の問題を修正すると、未解決の外部シンボルの問題が消えるはずです。

于 2015-06-09T23:52:47.863 に答える