【问题标题】:XE8.1: file was built for archive which is not the architecture being linked (arm64)XE8.1:文件是为存档而构建的,它不是被链接的架构(arm64)
【发布时间】:2015-07-20 15:26:01
【问题描述】:

我的开发环境: 在 Windows 7 (x64) 上运行的 Delphi XE8 Update 1。 XCode 6.4 在 Mac Yosemite 10.10.4 上运行。 iOS SDK 已添加到 XE8 中,适用于 32 位/64 位目标。

当使用从http://delphi.radsoft.com.au/2013/11/checking-for-an-internet-connection-on-mobile-devices-with-delphi-xe5 获得的 64 位版本的 libReachability.a 在 Delphi 中构建具有 64 位 iOS 目标的 iOS 应用程序时,我收到以下编译时错误:

[DCC 错误] E2597 NYI lto::isObjectFile
NYI lto::archName
ld:文件是为存档而构建的,它不是被链接的架构(arm64):libReachability.a 用于架构 arm64

如果目标是 iOS 32 位或 iOS 模拟器,则不会出现此错误。在 Mac 上,用于 64 位 iOS 目标的 libReachability.a 文件上的“lipo -info”显示:“fat 文件中的架构:libReachability.a 是:armv7 arm64”。我觉得还可以……

64 位 libReachability.a 文件已复制到 Program Files\Embarcadero\Studio\16.0\lib\iosDevice64\debug 目录。另一个团队成员能够正常使用它,但他们在没有更新 1 的情况下使用 XE8。关于如何修复此错误的任何想法?

【问题讨论】:

  • 我会说,检查项目目录中没有该 libReachability 文件的 32 位版本。清理项目,然后重新编译。
  • 就是这样!!!我的项目目录中有一个 32 位文件(在 proj 目录中同时拥有 .32 和 .64 文件,并在复制到 lib\iOSDevicex 目录之前重命名为 .a )。请添加您的评论作为答案,以便我可以“接受”它作为答案。谢谢
  • 很高兴我们能够这么快解决这个问题

标签: ios xcode delphi delphi-xe8


【解决方案1】:

检查所有 32 位版本的 libReachability 是否已从您的项目目录中删除。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    • 2016-09-24
    相关资源
    最近更新 更多