obj文件中的元数据标记是什么?

时间:2018-10-08 15:18:03

标签: c++-cli clr

我遇到了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信息吗?

0 个答案:

没有答案