代码清理-删除c++中无用的文件,包括,全局变量和函数
code cleanup - Remove useless files, includes, global variables and functions in C++
我修改了一个巨大的c++项目,里面有很多文件和函数。问题是,现在有大量无用的文件,包括,全局变量和函数。用手把它们取出来会很痛苦。是否有一种工具可以像编译器那样分析代码并删除所有未使用的东西?我更喜欢unix的工具。此外,如果能够删除上面提到的一个或几个无用组件,将会有所帮助。
如果您不介意每次构建系统时链接器都这样做,那么GNU工具链本身有几种优化代码大小的可能性。在c++中,什么是真正的"未使用代码"总是一个问题(因为使用指针和强制类型转换会误导任何工具)。
所以你最好的选择是黄金链接器(用黄金代替黄金-有经验吗?)和以下选项:
- 删除未使用的section
-gc-sections
: GCC——gc-sections和查找符号依赖 - 指令折叠
--icf
: GCC(/Clang):合并指令相同的函数(COMDAT折叠) - Optimize for Size
-Os
:用于减少可执行文件大小的进程
"更大"的方法将是静态代码分析器/代码重构工具(我怎么知道代码中的哪些部分从未使用过?),然后某些库(如Boost)提供了自己的工具来减少文件数量。
相关文章:
- 包括C++头文件
- 链接错误,包括我创建的相同头文件 - C++
- 标头,包括在 Swift 项目中使用C++文件时的错误
- 可执行文件C++包括.obj,.lib和.dll吗?
- 私有,包括头文件
- 包括头文件或 cpp 文件
- 如何将CPP文件包括在两个不同的CPP文件中
- 如何将标题文件包括在C DLL文件中
- 无法分离标头和cpp文件(包括错误和代码)
- 我如何grep通过所有文件#包括在文件中当前打开的vim
- 头文件包括彼此
- 博兰德C++链接器错误c文件包括
- 包括头文件(包括它们自己)
- 无法使用标头保护解决包含其自身的文件(包括标头)的错误
- C++头文件包括组织
- 如何从文件夹中读取所有txt文件?(包括子文件夹)
- c++嵌套头文件包括编译
- Qt创建者直接文件包括
- Cpp文件包括,同时也可以在其中调试
- 静态库头文件包括其他头文件。我是否需要这些头文件的实现/源文件?