0

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

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

卡皮尔。

4

1 回答 1

0

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

于 2012-03-12T00:55:36.027 回答