Delphi 10.2 Update3编译iOS设备64位时出现链接错误求助
解决Delphi 10.2 Update 3编译iOS项目的链接错误
嘿,我来帮你搞定这个编译报错的问题!从你给出的错误信息来看,核心是链接器(ld)找不到指定的SDK目录和系统库文件,结合你的环境(目标iOS11.3、测试设备是iOS10.3.3的iPad),给你几个实用的解决步骤:
1. 先修正SDK路径的“乌龙”
你看错误里出现了两个不同用户的路径(gustavo.reinert和Marcio.Amorim),这明显是Delphi加载了错误的配置!
- 打开Delphi,点顶部菜单的
Tools > Options > SDK Manager - 左边选中
iOS Device - 11.3,右边检查SDK Root Directory是不是指向你当前用户下的正确路径,比如应该是C:\Users\[你的用户名]\Documents\Embarcadero\Studio\SDKs\iPhoneOS11.3.sdk,别用别人的用户目录哦 - 如果路径错了,点
Update SDK按钮,重新关联正确的SDK文件(记得先确认你已经通过Xcode下载了iOS11.3的SDK,Delphi才能识别到)
2. 让目标版本和测试设备“对齐”
你现在目标编译iOS11.3,但测试设备是iOS10.3.3,版本不匹配很容易导致链接器找错库文件:
- 打开项目选项:
Project > Options > Deployment > Target Platform > iOS Device,把Version改成10.3(和你的iPad版本一致) - 去SDK Manager里确认你已经装了iOS10.3的SDK,如果没装,得通过Xcode下载对应版本,再让Delphi识别
3. 修复MacOSX SDK的系统库路径
错误里提到ld: file not found: /usr/lib...,这是因为Delphi找不到MacOSX10.13 SDK里的系统库:
- 回到SDK Manager,选中
OSX - 10.13,检查SDK Root Directory是不是正确指向你当前用户下的MacOSX10.13.sdk - 如果路径不存在,得重新下载MacOSX10.13的SDK:打开Xcode的
Preferences > Locations > Command Line Tools,选包含该SDK的Xcode版本,等下载完成后再让Delphi同步 - 另外,记得清理一下项目缓存:点
Project > Clean,然后再重新编译试试
4. 检查权限和SDK文件完整性
- 确保你当前用户对
Embarcadero\Studio\SDKs目录有读写权限,权限不够的话Delphi读不了SDK文件 - 如果之前SDK下载中途中断过,可能会有文件缺失,干脆把现有SDK目录删掉,重新通过Delphi的SDK Manager下载安装对应版本的SDK
内容的提问来源于stack exchange,提问作者Gustavo Reinert
相关产品推荐
相关产品推荐

