【问题标题】:Remove useless files, includes, global variables and functions in C++删除 C++ 中无用的文件、包含、全局变量和函数
【发布时间】:2015-08-22 04:42:47
【问题描述】:

我修改了一个包含大量文件和函数的大型 C++ 项目。问题是,现在有大量无用的文件、包含、全局变量和函数。用手去除它们会很痛苦。是否有一种工具可以像编译器一样分析代码并删除所有未使用的东西?我更喜欢unix的工具。还有一种方法可以只删除上面提到的一个或几个无用组件。

【问题讨论】:

  • 我想你最好的选择是 ctrl-f + replace
  • Google 提供了一个 iwyu(包括你使用什么)工具。它的作用是尝试自动检测您需要哪些包含,并生成差异以添加和删除包含。以我的经验,它并不理想,需要人工进行后期检查,但它可以使过程更快。
  • 您想要的术语是“死代码”标识。这由静态代码分析工具处理。 Clang 静态分析器工具是免费和开源的,但处于测试阶段。死码识别可能还不是一项功能。免费的强大静态代码分析工具并不多。
  • 这似乎是一个推荐问题。
  • 一个题外话的问题获得四票!不错。

标签: c++ code-cleanup


【解决方案1】:

如果您不介意每次构建系统时链接器都会执行此操作,那么 GNU 工具链本身就有多种可能性来优化代码大小。在 C++ 中总是存在一个问题,什么是“未使用的代码”(因为使用指针和强制转换会误导任何工具)。

因此,您最好的选择是Gold linker (Replacing ld with gold - any experience?) 和以下选项:

“更大”的方法是静态代码分析器/代码重构工具 (How can I know which parts in the code are never used?),然后某些库(如 Boost)确实带有 their own tools 以减少文件数量。

猜你喜欢
  • 1970-01-01
  • 2021-05-29
  • 1970-01-01
  • 2011-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-25
  • 1970-01-01
相关资源
最近更新 更多