我遇到了c ++ cli的链接器错误:
错误LNK2022元数据操作失败(80131195):自定义属性不一致:(0x0c00019d)。 foo.obj 1
错误LNK2022元数据操作失败(80131195):自定义属性不一致:(0x0c0001ab)。 bar.obj 1
什么是元数据令牌?我已经通过ildasm
学习了obj文件,但是我不知道实际上是什么问题。这是简短的内容:
foo.obj:
// TypeDef #190 (020000bf)
// -------------------------------------------------------
// TypDefName: FooClass (020000BF)
// Flags : [Public] [SequentialLayout] [Class] [Sealed] [AnsiClass] [BeforeFieldInit] (00100109)
// Extends : 01000017 [TypeRef] System.ValueType
// Layout : Packing:0, Size:12
// CustomAttribute #1 (0c00019c)
// -------------------------------------------------------
// CustomAttribute Type: 0a000006
// CustomAttributeName: System.Runtime.CompilerServices.NativeCppClassAttribute :: instance void .ctor()
// Length: 4
// Value : 01 00 00 00 > <
// ctor args: ()
//
// CustomAttribute #2 (0c00019d)
// -------------------------------------------------------
// CustomAttribute Type: 0a000007
// CustomAttributeName: System.CLSCompliantAttribute :: instance void .ctor(bool)
// Length: 5
// Value : 01 00 00 00 00 > <
// ctor args: ( <can not decode> )
bar.obj
// TypeDef #199 (020000c8)
// -------------------------------------------------------
// TypDefName: FooClass (020000C8)
// Flags : [Public] [SequentialLayout] [Class] [Sealed] [AnsiClass] [BeforeFieldInit] (00100109)
// Extends : 01000016 [TypeRef] System.ValueType
// Layout : Packing:0, Size:12
// CustomAttribute #1 (0c0001aa)
// -------------------------------------------------------
// CustomAttribute Type: 0a000006
// CustomAttributeName: System.Runtime.CompilerServices.NativeCppClassAttribute :: instance void .ctor()
// Length: 4
// Value : 01 00 00 00 > <
// ctor args: ()
//
// CustomAttribute #2 (0c0001ab)
// -------------------------------------------------------
// CustomAttribute Type: 0a000007
// CustomAttributeName: System.CLSCompliantAttribute :: instance void .ctor(bool)
// Length: 5
// Value : 01 00 00 00 00 > <
// ctor args: ( <can not decode> )
我所看到的是,FooClass扩展了不同的ValueTypes(我不知道为什么)。是否有关于该令牌的任何文档?是关于符号的某种pdb信息吗?