Best would be to not have huge projects in the first place, because even if your forward declare everything and essentially get rid of the bloat caused by the headers, you still are spending tens of seconds on the linking step even if you changed a single character in a string somewhere.
You can then have 0 link time by having dynamic librairies everywhere. You'll even probably be able to hot-reload some of them.
You can then have 0 link time by having dynamic librairies everywhere. You'll even probably be able to hot-reload some of them.