【问题标题】:a statically linked function is not visible in a dll dumpbin output静态链接函数在 dll dumpbin 输出中不可见
【发布时间】:2012-03-08 16:33:19
【问题描述】:

我有一个动态库 A.dll,它使用一个包含函数“int foo()”的静态库 B.lib。当我使用 dumpbin(在 win32、vs2010 上)查看 dll 中的符号时 - foo 不可见 - 这是预期的吗?还是微软特定的?我在 linux 上测试过这个,在 linux 上不是这样。

非常感谢您耐心阅读本文。

卡皮尔。

【问题讨论】:

    标签: dynamic dll static invisible dumpbin


    【解决方案1】:

    是的,这是意料之中的。就导入的符号而言,使用 dumpbin,您可以看到所谓的导入地址表和导入名称表,只要应用程序导入至少一个函数(在您的情况下为 A. dll)。由于您的应用程序从 STATIC 库(在您的情况下为 B.lib)导入一个函数,因此在上述导入表中存在 NO 条目,用于从 B.lib 使用的函数。一旦库静态链接到应用程序,它的主体(代码)就是应用程序的一部分。除了使用dumpbin 看不到应用程序的功能外,dumpbin 也看不到静态库的功能!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-02
      • 2010-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-11
      • 2011-08-31
      • 2012-12-29
      相关资源
      最近更新 更多