迁移到XCode派生数据构建路径后的链接器错误

时间:2015-08-13 21:51:25

标签: ios xcode static-linking

我有一个使用Legacy构建位置(File->Project Settings->Advanced)的XCode 4项目。

该项目有三个目标。静态库A使用静态库B,然后链接到使用的应用C

我利用此问题的要点(Build fat static library (device + simulator) using Xcode and SDK 4+)构建了AB的通用静态库,然后他们又lipo&#39 ; d成.a中链接的一个C。一切都很精彩。

最近,我通过将Build Location设置为DerivedData中的XCode默认值进行迁移(实验),我的应用程序C已经开始出现与A中定义的对象相关的链接器错误。由于我已经验证正确创建了胖库,因此非常混乱。

是否有其他警告要转移到我应该注意的XCode默认值?

更新

使用图片进行更新。选择Legacy后,一切都很顺利。使用Xcode Default,我收到链接器错误。此设置甚至不存储在您的项目中,因此我必须确保构建此项目的所有机器都使用该设置。我不了解此设置与链接器错误之间的相关性。还有其他人遇到过这个吗?

enter image description here

更新2

我发现这与我在库A中捆绑到B的方式有关。我以下列方式使用libtool

 libtool -static -o superlib.a out/*.a

此命令成功,但生成的.a未与应用程序正确链接。如果我将所有out/*.a文件与应用程序独立链接,则可以正常工作。还有Legacy构建位置,superlib.a工作正常。

令人费解。

0 个答案:

没有答案