【问题标题】:How to see the .a (library) code如何查看 .a(库)代码
【发布时间】:2023-04-01 02:47:01
【问题描述】:

是否有可能在 Eclipse 中查看 .a 文件内容(类型、方法等)? 我有 .a 库和有关方法的文档,但是当我尝试在程序中使用这些方法时,Eclipse 说没有这样的方法......我想知道 .a 包含哪些方法才能使用这个库。

【问题讨论】:

  • 您可能可以从文档中重建 .h 文件。

标签: eclipse-cdt .a


【解决方案1】:

是和不是。一些信息在 .a 二进制文件中(如导出的函数、全局和类名),并且取决于文件是用什么编程语言编写的,以及优化了多少,甚至更多(例如,理论上你可以从C++ 方法的名称,它需要什么参数)。

如果你擅长汇编程序,你可以反汇编 .a 并找出代码的实际工作方式,并从中推断出它需要什么参数。

但在实践中,没有做所有这些工作?不。您需要库附带的 .h 头文件来找出方法采用哪些参数、结构有多大以及它们由哪些字段组成,等等。

【讨论】:

    【解决方案2】:

    您可以使用实用程序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++?

    【讨论】:

      猜你喜欢
      • 2023-03-24
      • 2021-11-24
      • 2023-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-11
      相关资源
      最近更新 更多