【发布时间】: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