2009-05-06 4 views
0

プロジェクトを共通言語ランタイムでコンパイルしようとしていますが、デバッグビルド時に突然次のリンクエラーが発生します:VS2005のリンク処理中にメタデータをマージするときにファイルを無視する

Main.obj : error LNK2022: metadata operation failed (8013118D) : Inconsistent layout information in duplicated types (IDirect3DVertexShader9): (0x0200056e). 

Main.obj : error LNK2022: metadata operation failed (8013118D) : Inconsistent layout information in duplicated types (IDirect3DVertexDeclaration9): (0x0200056f). 

Main.obj : error LNK2022: metadata operation failed (8013118D) : Inconsistent layout information in duplicated types (IDirect3DDevice9): (0x02000a2a). 

Main.obj : error LNK2022: metadata operation failed (8013118D) : Inconsistent layout information in duplicated types (IDirect3DSwapChain9): (0x02000ab0). 

Main.obj : error LNK2022: metadata operation failed (8013118D) : Inconsistent layout information in duplicated types (IDirect3DIndexBuffer9): (0x02000ace). 

Main.obj : error LNK2022: metadata operation failed (8013118D) : Inconsistent layout information in duplicated types (IDirect3DVertexBuffer9): (0x02000b4e). 

Main.obj : error LNK2022: metadata operation failed (8013118D) : Inconsistent layout information in duplicated types (IDirect3DTexture9): (0x02000bbd). 

Main.obj : error LNK2022: metadata operation failed (8013118D) : Inconsistent layout information in duplicated types (IDirect3D9): (0x02000c0e). 

LINK : fatal error LNK1255: link failed because of metadata errors 

ソリューション全体の再構築を試みましたが、同じエラーが表示されます。誰かがこれを引き起こしている可能性があることを知っていれば私は知りたいと思う。私が見ることができる唯一の解決策は、デバッガに重複したタイプのデバッグ情報をビルドしないように指示することです。唯一の問題は、これをどうやって行うのか(あるいはそれが可能であっても)わからないことです。もし誰かが分かっていれば、私は助けに感謝します。

ご協力いただきありがとうございます。

ダニエル・アウエルバッハ

答えて

1

は、あなたがあるIDirect3Dまたは何ライブラリの複数のバージョンをhavceていますか?たとえば、いくつかの未知のバージョン(ある種の未知のバージョンIDirectに依存している)とビルドしたモジュールとそのライブラリの最新バージョンを含むdllモジュールがあるとします。それはあなたにそのようなエラーを与えることができます。

はあなたが前方その後、どこか他の完全な宣言を読んで、C++/CLIでクラスを宣言する場合、私はこのエラーを得ているLNK 2022

0

のためのMSDNのdocumentaionを参照してください:

// one.h 
class CMyNewClass; 

// two.h 
class CMyNewClass 
{ 
//... 
}; 

//main.cpp 
#include "one.h" 
#include "two.h" 
//... 

私はこの組み合わせだと思います1つはこの問題の原因ですが、Visual Studioを手元に置いていないので、今すぐチェックしてください。

関連する問題