我有一个大的 iOS 项目,它由几个(大约 20-30 个)静态库组成,这些静态库链接在一起成为最终的可执行文件。有些组件是平台无关的(纯 C++),有些是 iOS 特定的(Obj-C/Obj-C++)。C++ 模板被大量使用,因此每个目标文件都包含大量链接模糊的符号。问题是这些符号仅在链接最终可执行文件期间合并,而不是在制作静态库时合并。每个库都包含大量重复的符号(6-60 个克隆)。因此,应用程序的最终链接需要几分钟时间。这在调试和做一些小改动时变得非常烦人。
有没有办法为每个库执行具有模糊链接的符号合并?
我知道,这是在使用动态库时自动完成的。通过一些黑客攻击 (http://sumgroup.wikispaces.com/iPhone_Dynamic_Library) 可以为 iOS 构建动态库。有没有办法静态链接dylib(将它们链接到一个可执行文件中)?
当然,能够调试生成的应用程序是必须的。