【发布时间】:2018-04-06 13:26:43
【问题描述】:
如果交给智能编译管理器,将程序分成头文件和源文件可能会有助于加快编译速度,而这正是我正在做的工作。
理论工作:
为每个源文件创建一个线程并
一次将每个源文件编译成目标文件。
然后将这些目标文件链接在一起。
它仍然需要等待源文件最慢。
这应该不是问题,因为可以实现一个简单的n != nSources 计数器,它会随着每个生成的 .o 递增。
我认为默认情况下的 GCC 不会这样做。当它调用汇编程序时 它应该一个一个地解析文件。
这是一种有效的方法吗?如何进一步优化编译时间?
【问题讨论】:
-
大多数现代构建系统并行运行构建(例如,可敬的
make的-j选项)。 -
"当它调用汇编器时,它应该一个一个地解析文件。"嗯?你这是什么意思?
-
@Mat 我不使用
makes。我觉得他们有些东西令人反感。 -
这是一种非常愚蠢的态度。为什么?你是如何编译的?
-
@Lundin GCC 不是调用一整套子程序来处理输入,其中一个是汇编程序,它将输入转换为较低级别的语义
标签: c windows gcc compilation linker