IAR Embedded Workbench for Microchip AVR 7.30.5无报错却构建失败求助
对比GUI与命令行的构建参数差异
GUI和命令行的构建配置大概率不一致,先从GUI里导出构建脚本:Project > Generate Makefile,然后把生成的Makefile和你当前用的命令行参数(比如iarbuild.exe的启动参数)逐行比对,重点盯输出目录、依赖文件路径、预定义宏、链接器选项这些地方,看有没有不一致的点。手动清理命令行构建的中间文件
命令行构建可能没处理好依赖关系,直接删光Debug/Release输出文件夹,还有项目根目录下的*.dep、*.i、*.r51这类中间文件,再重新跑命令行构建试试。检查命令行的运行权限
命令行窗口的用户权限可能和GUI不一样,导致写不了中间文件或输出文件。试试用管理员权限打开命令行,或者确认当前用户对项目目录、IAR安装目录有完整的读写权限。验证外部依赖的文件路径
如果项目用了外部库、头文件或者资源文件,检查这些文件的路径在命令行环境下能不能访问——比如相对路径是不是错了,或者需要的环境变量在命令行里没加载。GUI可能自动继承了系统环境变量,但命令行窗口可能没加载全。修复或替换IAR命令行工具链
试试从同版本的IAR安装目录(如果有其他机器装了同款)复制iarbuild.exe、iccavr.exe这些核心程序替换掉当前的,排除工具损坏的可能。另外检查IAR安装目录下的license相关文件,虽然订阅过期,但基础构建功能应该还能用。排查自定义构建脚本
看项目属性里的Build Actions,有没有加预构建/后构建的自定义脚本。GUI里这些脚本可能能跑通,但命令行环境下缺必要的工具(比如脚本用到的程序不在PATH里),导致构建终止却没输出错误。可以先把这些脚本禁用,测试命令行构建能不能正常跑。
内容的提问来源于stack exchange,提问作者Regus Pregus

