gpt4 book ai didi

c++ - 使用dumpbin查看C++库信息时,UNDEF和notype()是什么意思?

转载 作者:太空狗 更新时间:2023-10-29 23:18:47 26 4
gpt4 key购买 nike

我使用 dumpbin/symbols 查看我创建的库。一些函数在输出中有 UNDEF notype。那是什么意思?有什么链接可以研究dumpbin输出的结构吗?

最佳答案

我们可以看看the MSDN documentation for dumpbin /SYMBOLS :

This option displays the COFF symbol table. Symbol tables exist in all object files. A COFF symbol table appears in an image file only if it is linked with /DEBUG.

The following is a description of the output for /SYMBOLS. Additional information on the meaning of /SYMBOLS output can be found by looking in winnt.h (IMAGE_SYMBOL and IMAGE_AUX_SYMBOL), or COFF documentation.

Given the following sample dump:

Dump of file main.objFile Type: COFF OBJECTCOFF    SYMBOL    TABLE000    00000000   DEBUG      notype      Filename      | .file      main.cpp002   000B1FDB   ABS      notype      Static      | @comp.id003   00000000   SECT1      notype      Static      | .drectve      Section length       26, #relocs   0, #linenums    0, checksum 722C964F005   00000000   SECT2      notype      Static      | .text      Section length      23, #relocs      1, #linenums    0, checksum 459FF65F, selection    1 (pick no duplicates)007   00000000   SECT2      notype ()   External      | _main008   00000000   UNDEF      notype ()   External      | ?MyDump@@YAXXZ (void __cdecl MyDump(void))String Table Size = 0x10 bytesSummary      26 .drectve      23 .text

The following description, for lines that begin with a symbol number, describes columns that have information relevant to users:

The first three-digit number is the symbol index/number.

  • If the third column contains SECTx, the symbol is defined in that section of the object file. But if UNDEF appears, it is not defined in that object and must be resolved elsewhere.

  • The fifth column (Static, External) tells whether the symbol is visible only within that object, or whether it is public (visible externally). A Static symbol, _sym, wouldn't be linked to a Public symbol _sym; these would be two different instances of functions named _sym.

  • The last column in a numbered line is the symbol name, both decorated and undecorated.

notype() 的意思正是它在 jar 上所说的:它没有类型。

关于c++ - 使用dumpbin查看C++库信息时,UNDEF和notype()是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12791747/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com