Sure - compile each source file to an object file, and then link all of the object files to form the executable. Objects can both import and export symbols, so that should be no problem. For each file changed you should have to recreate a single object and then just rerun the link step.