C ++ Lib Files是二进制文件,还是只是某种容器,比如zip文件,它包含所有二进制文件?
我问,因为我很好奇我是否可以打开一个库文件(.lib)来获取有关其中的文件的更多信息,类似于如何打开一个jar文件并在人类中查看它可读的方式。
我问,因为我在我的lib路径中添加了一些库,并且更愿意知道lib文件是否包含我试图引用的类。
答案 0 :(得分:1)
据我所知,库文件是纯二进制文件。因此,实际上“看到”它的内容就像拉链文件一样。
如果你掌握了一些.lib文件,那么很可能它附带了解释它的功能的文档。这将是一个检查您的课程是否存在于图书馆中的好地方。
编辑:This question描述了一个名为dumpbin的lib文件检查器,可能就是你所需要的。
答案 1 :(得分:0)
lib文件包含库提供的所有编译单元的编译二进制文件。既然你已经标记了C ++ Builder,我假设你有OMF - 库。您可以轻松地从这些信息中获取大量信息,例如库中的所有函数签名。
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行之后,您将获得编译对象时使用的所有依赖项文件(基本上包括)的列表。在依赖之后,有符号,包括解码的函数签名。