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