Linking files together is much faster than compiling everything. If one file is changed, then we only have to compile one object file. If a header file is changed, we have to re-compile any files that #include it. Think about it — for projects with hundreds or thousands of files, it doesn’t make sense to spend computational power on compiling everything, just the things that’ve changed.