我可以看到Visual C ++ / OPT:REF链接器选项消除了什么吗?

时间:2009-10-02 11:42:49

标签: visual-c++ linker

/OPT:REF选项导致Visual C ++链接器

  

排除从未引用的函数和/或数据

MSDN

这似乎是识别遗留代码库中过时代码的好方法。有没有办法让链接器输出被删除的内容?

2 个答案:

答案 0 :(得分:7)

/OPT (Optimizations)中,备注部分说明:

  

您可以使用/VERBOSE选项查看/ OPT:REF删除的功能以及/ OPT折叠的功能:ICF。

我还没有尝试过将它用于你的目的。

此外,如果您采用@JamesMcNellis SO Question 641826给出的路线,您可能需要参考answer来消除编译器生成的符号。

答案 1 :(得分:2)

这不太理想,但......

您可以执行两个构建,一个使用/OPT:REF,一个不使用,然后在生成的二进制文件上运行dumpbin /symbols,解析符号并对结果进行区分。诀窍是清除库符号,这样你只剩下你的符号。因为你最终会得到一个受损的名字列表,所以它不会很漂亮。

我不知道如何让链接器告诉你它正在删除它。