执行产品时缺少库链接错误>在Xcode 4中构建存档

时间:2011-05-14 21:31:46

标签: static xcode4 ld archiving

我有一个依赖于两个静态库的iPhone应用程序

执行项目>时Build For Running 然后 Project>运行没有错误,应用程序在我的iPhone上按预期运行。

执行项目>时构建存档我得到一个库的链接错误,但没有另一个库的链接错误    ld:找不到-lConcordeLib的库

当我在创建的* .a文件中查看文件系统时,我看到:

  

推出-的iPhoneOS / ConcordeLib.build /对象 - 正常/的ARMv6 / libConcordeLib.a
    释放的iPhoneOS / ConcordeLib.build /目标正常/ ARMv7的/ libConcordeLib.a
    释放的iPhoneOS / QSoptLib.build /目标正常/ ARMv6的/ libQSoptLib.a
    释放的iPhoneOS / QSoptLib.build /目标正常/ ARMv7的/ libQSoptLib.a
    释放的iPhoneOS / libConcordeLib.a
    释放的iPhoneOS / libQSoptLib.a

在DerivedData目录中进行编译。这看起来与执行 Project>成功时生成的文件完全相同Build For Running ,它在Debug-iphoneos下生成相同的文件。

我清除了派生数据,停止并重新启动XCode并仍然得到相同的错误。

1 个答案:

答案 0 :(得分:2)

我仔细查看了ld命令,发现它在... / Build / Intermediates / NavConcorde.build / AdHoc-iphoneos /下生成了文件。 AdHoc配置文件确实不再存在,因此出现错误并不奇怪。我不知道为什么这表现为链接错误。 Debug和Release下的库必须与另一个编译器挂起。

转到产品>编辑方案并设置配置文件以使用现有的分发配置文件解决了链接错误。