0

C++ Lib Files 是二进制文件,还是只是某种容器,例如包含所有二进制文件的 zip 文件?

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

我问,因为我正在向我的 lib 路径添加一些库,并且希望知道这些 lib 文件是否包含我要引用的类。

4

2 回答 2

1

据我所知,库文件是纯二进制文件。因此,实际上不可能像 zip 文件那样“看到”它的内容。

如果您掌握了一些 .lib 文件,那么它很可能还附带解释其功能的文档。那将是检查您的课程是否存在于图书馆中的好地方。

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

于 2013-04-04T17:25:27.337 回答
1

lib 文件包含该库提供的所有编译单元的编译二进制文件。由于您已标记 C++Builder,我假设您有OMF -libraries。您可以轻松地从中获取大量信息,例如库中的所有函数签名。

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

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

"C:\Program Files\Embarcadero\RAD Studio\10.0\bin\tdump.exe" library.lib > library-dump.txt

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

于 2013-04-05T19:09:14.820 回答