你能像如何从Jar文件中获取信息一样从c++ Lib文件中获取信息吗?

Can you get information out of C++ Lib Files like How you can Get Info out of Jar files?

本文关键字:文件 信息 获取 一样 c++ Lib Jar      更新时间:2023-10-16

c++ Lib文件是二进制的,还是只是某种容器,比如zip文件,它包含了所有的二进制文件?

我问,因为我很好奇我是否可以打开一个库文件(.lib)来获得更多关于它里面的文件的信息,类似于你如何打开一个jar文件并以一种人类可读的方式查看它。

我问,因为我正在向我的lib路径添加一些库,并且更愿意知道lib文件是否包含我试图引用的类。

据我所知,库文件是纯二进制的。所以不可能像zip文件那样"看到"它的内容。

如果你得到了一些。lib文件,那么它很可能还附带了解释其功能的文档。这是检查类是否存在于库中的好地方。

编辑:这个问题描述了一个名为dumpbin的库文件检查器,可能是你需要的。

lib文件包含由库提供的所有编译单元的编译二进制文件。由于您已经标记了c++ Builder,我假设您有omf库。你可以很容易地从中获得很多信息,例如库中的所有函数签名。

c++ Builder附带了一个名为TDump的工具,它以人类可读的形式打印库的内容。它位于c++ Builder安装目录下的bin目录。

下面的示例向您展示了如何使用TDump从命令行转储库的内容:

"C:Program FilesEmbarcaderoRAD Studio10.0bintdump.exe" library.lib > library-dump.txt

您可以通过在输出中搜索"THEADR"来找到库中的每个对象模块。在theadr行之后,您将获得编译对象时使用的所有依赖文件(基本上包括)的列表。在依赖项之后是符号,包括要求的函数签名。