I try to put some reusable functions into my own static library but i noticed one problem.
Let’s say the static library has many functions and some requires quartz core framework, some requires messgeUI etc.
When I build a new project, I include this static library project into my code so that I can reuse those functions.
Now even if I only use a simple function that doesn’t require any frameworks, I am forced to include all the quartzcore, message UI frameworks or I will face build errors because the static library requires them- but I do not need all of them!
How can I design a better general purpose static library that doesn’t force people to include frameworks that is not used by them at all?
You can use weak linking – if weak linkage is used, unused symbols (functions, methods, global variables) don’t have to be present at linking time.