改了一个源文件,按下编译,窗口却只提示工程已是最新;换个时候,构建中途停了,翻来翻去又找不到具体错误。这种情况容易让人以为IAR漏了消息。其实构建窗口显示的是这一次构建产生的内容:如果文件没有参与编译,或窗口内容被清空,之前的错误不会留在那里。下面以IAR Embedded Workbench for Arm为例,从打开窗口开始检查。
一、IAR怎么查看编译信息
编译器、链接器的消息在构建窗口中。窗口可以只显示错误,也可以显示警告和完整命令。查看前先选准工程与配置,否则读到的可能是另一份构建结果。
1、打开构建窗口
①打开工程,依次点击【View】→【Messages】→【Build】。
②在窗口空白处右键选择【All】,显示全部构建信息。
③只查错误时,右键选择【Errors】;连同警告一起看时选择【Warnings】。
④点击【View】→【Status bar】,查看本次构建的错误和警告数量。
2、生成并阅读本次日志
①在顶部配置列表选择【Debug】或【Release】。
②右键点击目标工程,选择【Set as Active】。
③点击【Project】→【Rebuild All】,等待任务结束。
④从构建窗口找到第一条错误,双击它跳转到对应文件。
⑤若提示来自链接器,记下出错的符号名和文件名,再查看它前面的构建消息。
二、IAR编译日志缺少错误信息如何处理
先看日志里有没有目标文件的编译命令。没有这条命令,就要查工程、配置或文件参与状态;有命令却找不到预期消息,再查窗口筛选和诊断设置。构建任务如果在较早的错误处停止,后面的文件也不会继续产生消息。
1、本次没有重新编译文件
①在【Build】窗口右键选择【All】,搜索目标源文件名。
②若只看到工程已是最新的提示,点击【Project】→【Rebuild All】。
③若先前误点了【Clear All】,重新构建以生成新的窗口内容。
2、工程或配置选错了
①在工作区核对工程名称,右键目标工程选择【Set as Active】。
②检查顶部配置是【Debug】还是【Release】,切换到出错时使用的配置。
③重新点击【Project】→【Rebuild All】,核对日志开头的工程信息。
④工作区有同名工程时,核对所打开工程文件的路径。
3、源文件没有参与构建
①在工程树中找到目标源文件,确认它位于当前工程下。
②右键点击该文件;若菜单显示【Include in Build】,点击该项。
③返回【Build】窗口选择【All】,重新构建并查找文件名。
④改的是头文件却没有看到相关编译记录时,点击【Project】→【Rebuild All】。
4、构建提前停止了
①在【Build】窗口找到最先出现的错误,查看对应文件和工具名称。
②进入【Tools】→【Options】→【Project】,检查【Stop build operation on】的设置。
③编辑器中有未保存的修改时,点击【File】→【Save All】。
④修正首条错误后重新构建,再查看后续文件是否产生新的消息。
5、要找的消息属于另一类
①怀疑缺少的是警告时,在【Build】窗口右键选择【Warnings】。
②进入【Project】→【Options】→【C/C++Compiler】→【Diagnostics】,检查警告编号是否被屏蔽或降级。
③要查C-STAT结果时,打开【View】→【C-STAT】→【C-STAT Messages】。
④若错误发生在连接目标板时,打开【View】→【Messages】中的调试日志窗口。
三、怎样保存一份能复核的编译日志
昨天有错、今天没错,单凭一张报错截图很难判断差异。完整日志还会留下编译了哪些文件、使用了什么配置。需要比较两次结果时,把这些信息与错误消息一起留存。
1、复制当前构建记录
①在【Build】窗口右键选择【All】。
②右键依次点击【Select All】→【Copy】。
③将内容粘贴到文本文件,用工程名称、配置和日期命名。
2、记录下一次完整构建
①在【Build】窗口右键打开【Live Log to File】,指定日志文件。
②点击【Project】→【Rebuild All】,等待日志写入完成。
③打开文件,核对工程、配置、编译文件列表及末尾的错误统计。
④比较两份日志时,先找编译命令或文件列表的第一处差异。
总结
IAR日志里没有预期错误,不一定是消息丢了:这次可能没编译到那个文件,也可能打开了另一种消息窗口。把工程路径、构建配置和完整输出留在一起,之后遇到同名工程或多版本交替编译,就能拿记录逐项核对。希望这篇关于“IAR怎么查看编译信息IAR编译日志缺少错误信息如何处理”的内容对大家有帮助;如有IAR相关需求,欢迎联系我们咨询。