如何从特定的静态链接库生成构建产品使用的符号列表?

时间:2010-04-13 21:21:24

标签: c++ windows visual-studio linker

假设我有一个可视化工作室项目,可以从c ++源代码构建一个windows exe或dll。

项目静态链接到多个库(.lib)文件。

我想在项目实际链接到的特定.lib中生成可用功能的子集。

实现此目的的一种非常粗略的方法是从链接器输入列表中删除.lib。然后,构建中的错误列表将显示无法找到的所有符号。

是否有更好/正确的方法来生成此列表,我很满意可以作为项目中的自定义构建步骤运行的解决方案,或者针对构建的二进制文件运行的解决方案。

我查看了链接器和dumpbin命令行选项,但没有看到任何合适的内容。

2 个答案:

答案 0 :(得分:1)

我可以想到在Visual Studio(2005)中执行此操作的两种方法:

  • 将/ VERBOSE添加到链接器选项,或通过项目属性页面下的GUI - >链接器 - >一般 - >显示进度=“显示所有进度消息”。然后链接器输出它从哪个库链接的函数。

  • 将/MAP:mymapfile.map添加到链接器选项,或通过项目属性页面下的GUI添加 - >链接器 - >调试 - >生成地图文件和地图文件名。这将生成符号的文本文件以及它们链接的库。

这能满足您的需求吗?

答案 1 :(得分:0)

您可以尝试使用gnu binutils中的nm实用程序列出.lib文件的符号。