关于静态库:如何查看Windows库的内容(* .lib)

您所在的位置:网站首页 查看动态库导出函数的命令 关于静态库:如何查看Windows库的内容(* .lib)

关于静态库:如何查看Windows库的内容(* .lib)

2024-05-21 23:26| 来源: 网络整理| 查看: 265

我有一个二进制文件-Windows静态库(* .lib)。 有没有一种简单的方法可以从该库中找出函数的名称及其接口?

类似于emfar和elfdump实用程序(在Linux系统上)吗?

相关讨论 注意:.NET专用的命令提示符随Visual Studio版本一起提供,但不随Express版本一起提供。 来自:social.msdn.microsoft.com/Forums/en-US/

假设您在谈论静态库,则DUMPBIN /SYMBOLS显示该库中的函数和数据对象。如果您在谈论导入库(用于引用从DLL导出的符号的.lib),则需要DUMPBIN /EXPORTS。

请注意,对于与" C"二进制接口链接的函数,这仍然无法使您返回值,参数或调用约定。该信息根本没有被编码在.lib中。您必须提前知道(例如,通过头文件中的原型),以便正确调用它们。

对于与C ++二进制接口链接的函数,调用约定和参数编码在函数的导出名称中(也称为"名称修改")。 DUMPBIN /SYMBOLS将同时显示"混合的"函数名称以及已解码的参数集。

相关讨论 / SYMBOLS和/ EXPORTS现在都不起作用。 我必须使用/ ALL和更多管道来查看.lib文件中的所有功能。 @ user5280911 dumpbin symbols今天在Win 10上对我来说工作正常,带有静态库.lib文件上的VS 2019开发人员命令提示符,为什么您今天说它不起作用?

打开可视命令控制台(Visual Studio命令提示符)

1dumpbin /ARCHIVEMEMBERS openssl.x86.lib

要么

1lib /LIST openssl.x86.lib

或仅使用7-zip打开它:)其AR档案

相关讨论 7-zip很棒的技巧似乎有两个.txt文件,这意味着什么?

我想要Unix中的ar t libfile.a之类的工具。 Windows等效为lib.exe /list libfile.lib。

相关讨论 是的lib将(仅)显示obj文件; 它不会在obj文件中显示功能和数据。

" dumpbin -exports"适用于dll,但有时可能不适用于lib。对于lib,我们可以使用" dumpbin -linkermember"或仅使用" dumpbin -linkermember:1"。

LIB.EXE是VS的图书馆管理员

http://msdn.microsoft.com/zh-cn/library/7ykb2k5f(VS.80).aspx

(例如Unix上的libtool)

DUMPBIN / EXPORTS将获得大部分信息,而点击MSDN将获得其余信息。

获取其中一个Visual Studio包; C ++

1)打开VS 2017的开发人员命令提示符(或计算机上具有的任何版本)(应位于以下位置:开始菜单->所有程序-> Visual Studio 2017(或计算机上具有的任何版本) -> Visual Studio工具 -> VS 2017的开发人员命令提示符。

2)输入以下命令:

dumpbin /EXPORTS my_lib_name.lib

就像在其他答案中可以看到的那样,您必须打开Visual Studio版本中提供的Developer Command Prompt,才能在执行路径中使用dumpbin.exe。否则,您可以手动设置必要的环境变量。

dumpbin /EXPORTS yourlibrary.lib通常只会显示少量符号。在许多情况下,它不会显示库导出的功能。

dumpbin /SYMBOLS /EXPORTS yourlibrary.lib将显示该符号,但还会显示大量其他符号。因此,您必须使用findstr(如果要使用MS-Windows工具)或grep的管道来过滤它们。

使用这些工具之一搜索Static关键字似乎是一个很好的提示。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3