【发布时间】:2023-04-01 02:47:01
【问题描述】:
是否有可能在 Eclipse 中查看 .a 文件内容(类型、方法等)? 我有 .a 库和有关方法的文档,但是当我尝试在程序中使用这些方法时,Eclipse 说没有这样的方法......我想知道 .a 包含哪些方法才能使用这个库。
【问题讨论】:
-
您可能可以从文档中重建 .h 文件。
标签: eclipse-cdt .a
是否有可能在 Eclipse 中查看 .a 文件内容(类型、方法等)? 我有 .a 库和有关方法的文档,但是当我尝试在程序中使用这些方法时,Eclipse 说没有这样的方法......我想知道 .a 包含哪些方法才能使用这个库。
【问题讨论】:
标签: eclipse-cdt .a
是和不是。一些信息在 .a 二进制文件中(如导出的函数、全局和类名),并且取决于文件是用什么编程语言编写的,以及优化了多少,甚至更多(例如,理论上你可以从C++ 方法的名称,它需要什么参数)。
如果你擅长汇编程序,你可以反汇编 .a 并找出代码的实际工作方式,并从中推断出它需要什么参数。
但在实践中,没有做所有这些工作?不。您需要库附带的 .h 头文件来找出方法采用哪些参数、结构有多大以及它们由哪些字段组成,等等。
【讨论】:
您可以使用实用程序nm 或其窗口模拟dumpbin 从库中读取函数名称(请参阅此处的详细信息:Microsoft equivalent of the nm command)。
如果库在 C 中,您将不会得到更多的名称。如果它在 C++ 或 Java 中,则参数的类型(但不是返回类型)被“变形”到名称中。在 Unix 上,您可以使用程序 c++filt 对它们进行解构。还有一些在线服务可以对 C/C++ 和 Java 的 GCC 和 MSFT 函数名称进行解构:Is there an online name demangler for C++?
【讨论】: