关于静态库:如何查看Windows库的内容(* .lib) |
您所在的位置:网站首页 › 查看动态库导出函数的命令 › 关于静态库:如何查看Windows库的内容(* .lib) |
我有一个二进制文件-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 |