我最近将我的c项目中的一些非常大的文件拆分为许多较小的文件(基本上每个类一个文件).这使编译时间增加了一倍,并将生成的可执行文件从1.6mb扩大到2.4mb.为什么这会产生如此巨大的差异?
这是否必须在很多文件中包含一些标题而不是少数文件的直接结果?
漫画选项:
g -Wall -Wextra -g -ggdb -std = c 0x
我所指的可执行文件大小是在运行strip -s可执行文件之后.
尺寸:
之前使用调试符号:16MB
使用调试符号后:26MB
没有调试符号之前:1.5MB
没有调试符号后:2.4MB
附加问题:
我已经通过将标头放在pch.hpp中然后在我的g标志中使用-include pch.hpp选项来使用预编译头文件.这是使用gcc执行此操作的最佳方式吗?它似乎对编译时间的影响非常小.目前尚未预编译的唯一标题是项目的一部分,并且随着项目的大量开发而变化.