I have a large iOS project, consisting of several (about 20-30) static libraries that are linked together into the final executable. Some of the components are platform independent (pure C ++), and some are iOS-specific (Obj-C / Obj-C ++). C ++ templates are heavily used, so each object file contains many characters with fuzzy binding. The problem is that these characters merge only when linking the final executable file, but not when creating static libraries. Each library contains tons of duplicated characters (6-60 clones). Thus, the final build of the application takes several minutes. This becomes extremely annoying when debugging and making small changes.
Is there a way to merge undefined-linked characters for each library?
I knew this was done automatically when using dynamic libraries. With some hacks (http://sumgroup.wikispaces.com/iPhone_Dynamic_Library) you can create dynamic libraries for iOS. Is there a way to link dylib statically (link them to a single executable)?
Of course, debugging the resulting application is a must.
source share