2009-05-06 5 views
0

Ich versuche, mein Projekt mit der Common Language Runtime zu kompilieren, und beim Versuch, einen Debug-Build zu erstellen, stoße ich plötzlich auf die folgenden Verknüpfungsfehler :Ignorieren von Dateien beim Zusammenführen von Metadaten während des Verknüpfungsvorgangs in 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 

Ich habe versucht, die gesamte Lösung neu aufzubauen, und ich sehe immer noch den gleichen Fehler. Wenn jemand weiß, was das verursachen könnte, würde ich es gerne wissen. Die einzige Lösung, die ich sehen kann, ist, dem Debugger mitzuteilen, keine Debugging-Informationen für die duplizierten Typen zu erstellen. Das einzige Problem ist, dass ich nicht weiß, wie ich das machen soll (oder tatsächlich, wenn es überhaupt möglich ist). Wenn jemand es weiß, würde ich die Hilfe zu schätzen wissen.

Vielen Dank im Voraus für Ihre Hilfe!

Daniel Auerbach

Antwort

1

Haben Sie mehrere Versionen von IDirect3D oder was auch immer Bibliothek havce das ist? Ein Beispiel: Sie haben ein paar Module, eine DLL, die Sie vorkonfiguriert haben (mit einer Abhängigkeit von einer unbekannten Version von IDirect), und ein Modul, das Sie erstellt haben, mit der neuesten Version dieser Bibliothek. Das kann dir einen solchen Fehler geben.

Siehe MSDN documentaion für LNK 2022

0

ich diesen Fehler bekommen haben, wenn Sie Vorwärts-Klassen in C deklarieren ++/CLI, dann lesen Sie die vollständige Erklärung woanders:

// one.h 
class CMyNewClass; 

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

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

Ich denke, diese Kombination das ist Eine, die dieses Problem verursacht, aber ich habe Visual Studio derzeit nicht zur Hand, um es zu überprüfen.