创建需要公共库的库

时间:2012-12-10 16:50:24

标签: ios xcode compilation shared-libraries static-libraries

我在一个非常大的iOS项目中工作,它有很多类和资源,索引和编译它们需要很长时间。由于它仍然越来越多,我需要对此做些什么,因为我花了太多时间等待IDE让我工作。

我的第一个想法是将所有图像打包到自定义捆绑包中,这样IDE就会将其视为单个文件,并且索引和复制它会更快,但我看到捆绑只不过是一个简单的文件夹有一个扩展,所以我猜,性能仍然会很慢。然后我读到如果我为我的图像使用“蓝色文件夹”而不是“黄色组”,Xcode就不会索引它们。但这种方式现在并不容易,因为我应该替换我的函数来查找图像以在该文件夹中查找它们(绝对路径?)

所以我的最后一种方法是在编译时和索引编制中节省时间。我想在多个库中模块化我的代码,因此没有必要再次“编译”它,这样Xcode也不需要索引源文件。

我已经学过一些教程,现在我知道如何创建静态库并将头文件包含在另一个项目中。但我目前的问题如下。

我的应用程序有几个“独立”模块,所以我想为每个模块创建一个静态库(也许我也会为每个模块生成一个图像包...)。但是所有这些模块都使用了一个共同的核心,我也想在静态库中维护它。所以,如果我这样做,我将不得不在每个模块库中包含主核心库,我担心这不是最佳方式,因为核心的二进制代码会有几次,正确?

我想正确的解决方案是为核心生成动态库,为模块生成静态库,但我找不到如何生成动态库...此外,我不确定这是否会解决方案。

所以我问你:我有什么选择?我最好的方法是多次编译核心? 非常感谢你的帮助!

1 个答案:

答案 0 :(得分:1)

IOS不支持动态链接,因此这不是一个选项。虽然静态库被添加到其他库中,但它没有嵌入到其他静态库中,您可以在进行构建时看到这一点,其他库应该在项目文件夹中显示为单独的库,因此每个静态库/ project只会在app build中包含一次。

最后......如果您在同一个工作区中使用静态库,我不确定这会为您节省很多时间。我在一些项目中使用静态库,如果我在应用程序上执行Clean,那么构建,静态库也将重新构建。