C++ 用于分析库文件中符号的实用程序

C++ 用于分析库文件中符号的实用程序,c++,visual-c++,symbols,dumpbin,C++,Visual C++,Symbols,Dumpbin,我对一个大的静态库(.lib)文件有一些问题,我怀疑代码膨胀是因为不加选择地使用模板类。我想分析库中的符号,以确认哪些符号构成了文件大小的大部分 当我将我的可执行文件链接到这个库时,得到的输出更合理,大小更合理(大约20Mb),因此链接器显然在剥离大量冗余符号。我想知道它是什么 我知道我可以使用dumpbin生成符号和头,但是,由于所讨论的库非常大(900Mb),如果没有用于解析和报告它的实用工具,这个转储几乎是不可用的 很明显,我可以自己写这篇文章,但我想知道是否有人可以推荐任何已经可以使用的

我对一个大的静态库(.lib)文件有一些问题,我怀疑代码膨胀是因为不加选择地使用模板类。我想分析库中的符号,以确认哪些符号构成了文件大小的大部分

当我将我的可执行文件链接到这个库时,得到的输出更合理,大小更合理(大约20Mb),因此链接器显然在剥离大量冗余符号。我想知道它是什么

我知道我可以使用dumpbin生成符号和头,但是,由于所讨论的库非常大(900Mb),如果没有用于解析和报告它的实用工具,这个转储几乎是不可用的


很明显,我可以自己写这篇文章,但我想知道是否有人可以推荐任何已经可以使用的免费软件?

这是你自己的图书馆吗?如果可以,这将描述库中代码的布局,这将以更友好的形式为您提供所需的信息

如果没有源代码访问权限,可以使用Perl或其他开源脚本工具来破解
dumpbin
输出


编辑:你也可以给LibDump一个旋转,它可以从下载。我自己没有用过。

我发现一个()非常好用,正好满足了我的需要:

这会显示链接器删除的所有符号吗?不确定你的意思是什么。它将向您显示每个函数的起始位置和大小—这不是您想要的吗?据我所知,.lib文件中的符号比可执行文件实际使用的符号要多得多,因为链接器会删除所有未使用的符号(除非我弄错了?)。我需要查看.lib文件中的所有符号,而不仅仅是可执行文件所使用的符号-我只是想知道在链接时构建链接映射是否会提供此信息,或者只提供结果所使用的内容的映射。EXE我指的是在构建静态library.lib文件时生成映射,而不是生成的.EXE。如果您在可执行链接选项上设置了
/MAP
,那么是的,您是对的。如果您(能够)在库链接步骤中设置它,那么您将看到静态库的全部内容。据我所知,在构建静态库时没有链接?