S32DS编译出现 Ld error: file not recognized: file format not recognized 错误的解决方法
①问题来源
在完成NXP S32DS IDE的安装后,编译任何工程(包括内置例程)都出现链接错误:
问题栏提示:Ld error: file not recognized: file format not recognized
②分析过程
问题提示是gcc编译阶段在链接步骤出现文件格式不识别问题,通过对Makefile的分析也只能看到是卡在了链接阶段,几经在NXP社区和论坛翻阅相关问题都没有思路破局。然后开始怀疑是install过程中有操作失误,反复卸载安装了几次IDE和package(折磨),都是徒劳无果,又怀疑是下载各种SW package的时候网络不好,特意科学上网让下载的网络稳定进行安装,问题继续复现,后续联系了代理的工程师提供支持,也没有太好的解决头绪。
③解决方法
按照笔者的IDE使用经验,一般出现链接问题都是编译器或者Makefile不对,可是上面截图图中可以清晰的看到Makefile以及链接的语法都是没有问题的,故开始怀疑编译器的问题,之前使用过诸如MDK和IAR遇到类似问题都是从一台没问题的的电脑将提示故障的文件拷贝到有问题的环境中看是否能够解决问题,故笔者向同事拷来了报错中提到的 V10.2编译器文件夹。
将其拷贝到S32DS的安装路径对应的路径分支下(文件比较大,需要拷一段时间):
再对之前报错的工程(另一台电脑能编译过的或者新建例程)进行build:
编译成功,生成执行文件成功!