更改包含在大型项目的所有模块中的头文件

时间:2014-11-23 12:39:53

标签: c compilation

我有一个大项目,需要大约半个小时才能编译。

该项目由许多模块组成,但是有一个包含所有模块之间共享数据的头文件。

目前,我正在对此头文件进行重大更改,每次我尝试编译并运行项目以确保一切正常时,需要花费大量时间进行编译(因为此头文件包含在所有模块中。)

无论如何都要克服这个大的编译时间吗?

1 个答案:

答案 0 :(得分:1)

考虑不要像那样构建你的项目。

您的文件可能包含许多字符串,整数等。将它们放入单个.c文件中,并提供读取它们的函数,或者在标题中使用extern int foo;等。

如果你不能这样做:

  • make -jN将运行最多make个进程的并行N(两倍的CPU核心似乎运行良好)。
  • 每次更改后都不要重新编译。在进行大量更改后重新编译。
  • 获取更快的计算机,或使用distcc
  • 头文件是否真的是否需要包含在每个文件中?它可以分解,所以只有一些文件包含其中一些吗?
  • 如果是这样,请考虑重构代码,不要这样做。