【问题标题】:Missing Library link error when doing Product > Build For Archiving in Xcode 4在 Xcode 4 中执行 Product > Build For Archiving 时缺少库链接错误
【发布时间】:2011-05-14 21:31:45
【问题描述】:

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

当执行 Project > Build For Running 然后 Project > Run 没有错误并且应用程序在我的 iPhone 上按预期运行。

在执行 Project > Build For Archiving 时,我收到其中一个库的链接错误,但另一个库没有 ld: 找不到 -lConcordeLib 的库

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

发布-iphoneos/ConcordeLib.build/Objects-normal/armv6/libConcordeLib.a
发布-iphoneos/ConcordeLib.build/Objects-normal/armv7/libConcordeLib.a
发布-iphoneos/QSoptLib.build/Objects-normal/armv6/libQSoptLib.a
发布-iphoneos/QSoptLib.build/Objects-normal/armv7/libQSoptLib.a
发布-iphoneos/libConcordeLib.a
发布-iphoneos/libQSoptLib.a

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

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

【问题讨论】:

    标签: static xcode4 ld archiving


    【解决方案1】:

    我仔细查看了 ld 命令,发现它在 .../Build/Intermediates/NavConcorde.build/AdHoc-iphoneos/ 下生成了文件。 AdHoc 配置文件实际上已不存在,因此出现错误也就不足为奇了。我不知道为什么这会表现为链接错误。 Debug 和 Release 下的库一定是从另一个编译中挂出来的。

    转到 Product > Edit Scheme 并将配置文件设置为使用现有的分发配置文件解决了链接错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-18
      • 2015-05-15
      相关资源
      最近更新 更多