我修改了一个包含大量文件和函数的庞大C项目.问题是,现在有大量无用的文件,包括全局变量和函数.用手去除它们会很痛苦.有没有像编译器那样分析代码的工具并删除所有未使用的东西?我更喜欢unix的工具.另外一种方法只能删除上面提到的一个或几个无用的组件会有所帮助. 最佳答案 如果您不介意链接器每次构建系统时都这样做,那么GNU工具链本身有几个可以优化代码化的功能.在C中总是存在一个问题,那就是“未使用的代码”(因为使用指针和强制转换会误导任何工具).
所以你最好的选择是Gold linker(Replacing ld with gold – any experience?)和以下选项:
>删除未使用的部分-gc-sections:GCC –gc-sections and finding symbol dependencies
>指令折叠–icf:GCC(/Clang): Merging functions with identical instructions (COMDAT folding)
>优化尺寸-Os:Process for reducing the size of a executable
“更大”的方法是静态代码分析器/代码重构工具(How can I know which parts in the code are never used?),然后像Boost这样的某些库与their own tools一起来减少文件数量.