0

リンカーの警告が表示されます

warning LNK4217: locally defined symbol lzma_check_is_supported imported in function "void __cdecl parse_real(struct args_info *,int,char * *)" (?parse_real@@YAXPAUargs_info@@HPAPAD@Z)

lzma_check_is_supported関数は、別のディレクトリ内の他の .cpp ファイルに存在します。parse_real別のものに存在します。ソースコードのコンパイル中にパス-I../src/common(この関数の定義を含む) を指定しました。ただし、機能していないようで、アプリケーションがクラッシュします。

lzma_check_is_supportedまた、アプリのクラッシュを含むファイルにのコードを貼り付けるとクラッシュしますparse_realが、今回はもう少しクラッシュが発生します (windbg でこれを見ました)。

関数定義がリンカーで使用できないため、インポートされている可能性があると推測しています。最初はこの警告を無視していましたが、これが主な問題であることがわかりました。

MSDN http://msdn.microsoft.com/en-us/library/aa3se25k(v=vs.80).aspxは、でコンパイルすると言います/clr。しかし、私は得るerror LNK2022: metadata operation failed (80131188) : Inconsistent field declarations in duplicated types (types: lzma_coder_s; fields: <alignment member>): (0x04000003).

デバッグフォルダーを削除して再構築する(機能しない)と言った他の投稿を参照しました。リンカーの警告のみを解決したい。/clrフラグを付けてコンパイルすることで正しくやっていますか?

はいの場合、メタデータ エラーを修正するにはどうすればよいですか?

ありがとう

4

0 に答える 0