2010-11-01 61 views
0

我有libX链接libA和libY链接libA。现在我需要在同一个项目中使用libX和libY,因此它们被链接到同一个应用程序中。为了争辩,我们假设libA的大小为5 MB,并且我正在构建一个iOS应用程序。如何避免在Xcode中多次包含公共基本库?

我已经read here在这种情况下库之间没有冲突,因为本例中的libA将包含在libX和libY中。但是,这也将使应用程序的尺寸显着增加10 MB,而不是5 MB。

为了不在应用程序中包含两次libA,我需要做些什么?有没有编译器开关?

除此之外,有什么我可以做的方面是如何设置库和分成Xcode项目,以便我最终与libA链接只有一次?例如,我可以在不链接到libA的情况下构建libX和libY,假设最终项目将libA添加为链接库?

通常情况下,我只是建立libA作为动态库,但据我所知,这是不允许在iOS上。

回答

2

AFAIK对静态库说“libX链接到libA”是错误的。静态库只是对象文件的存档。链接应用程序时,实际链接指责。所以没有重复的库。

+0

我已经清理了我的项目,事实上,我有一个使用libA的静态libX,但它甚至没有链接到它。只要能够找到libA的头文件,只要使用libX的任何项目都与libA链接,它就会进行编译。 – LearnCocos2D 2010-11-03 11:17:50

0

从相关性中删除(可能)链接阶段,然后将所有必需的库链接到最终的可执行文件。