I’m pretty new to the C++ build flow, and I’m thinking of switching to use partial linking for my libraries instead of creating ar archives. I’m hoping to reduce link time in an inevitable final compilation step that I have, and I figure partial linking some libraries once could save me time over linking everything in that final step.
Is what I’m describing possible? I figure it should be something along the lines ld -Ur -o mylib.o [components]. Are there important build considerations that I’m not taking into account?
You lose an important effect of having the object files in an
ararchive, which is that only the referenced objects will be linked in.If you have both
foo.owith the symbolfooand bar.o with the symbolbarin anararchive, and only reference thefoosymbol, onlyfoo.owould be linked in. If you instead do a partial link, the contents of both will end up in the executable, even ifbaris never referenced anywhere.You could also try a faster linker, like gold.