使长 header 文件编译一次?

Make long header files compile once?

好吧,我正在使用“Catch2”框架进行 C++ 单元测试,在我的“testMain.cpp”(没关系)中,我包含了它的单个 header 版本 #include "Catch.hpp".

问题是每次我只写一个小测试,我都必须编译程序才能再次看到输出。但是单个 header 大约有 70000 行,而且需要很长时间。

我知道使用源文件您可以简单地将它们编译成 object 文件,然后 link 它们。因此,如果您只是 linking 使用相同的源文件,则没有必要重新编译它。

所以这个问题的重点是,是否可以以某种方式编译 Catch.hpp 文件并将其用作单词后的 link?或者为了减慢速度,我是否必须获得框架的 multi-header 版本?

提前致谢!

你读过 https://github.com/catchorg/Catch2/blob/devel/docs/slow-compiles.md 了吗?

建议将测试主函数移动到一个单独的文件中,这样编译密集的部分只编译一次。