在IAR Embedded Workbench里修改优化级别、宏定义或链接文件后,编译结果却没有变化,先确认改动落在了哪里。同一工程的Debug与Release分别保存设置,文件或分组也可能有独立选项。下面以IAR Embedded Workbench for Arm为例,说明设置方法和检查顺序。
一、IAR怎么设置工程选项
打开选项窗口前,先选构建配置,再选工程根节点。若选中的是某个源文件,修改范围就会变成该文件,而非整个工程。
1、选中工程和构建配置
①打开工作区,在顶部配置下拉框选择【Debug】或【Release】。
②在工作区窗口点击工程名称。
③依次点击【Project】→【Options】,打开工程选项。
2、修改选项并构建
①进入【C/C++Compiler】→【Optimizations】,设置优化级别。
②需要修改宏定义或头文件路径时,进入【C/C++Compiler】→【Preprocessor】。
③需要更换链接配置文件时,进入【Linker】→【Config】。
④点击【OK】保存,再点击【Project】→【Rebuild All】。
二、IAR工程选项修改后编译结果没有变化如何检查
先查当前配置与选项范围,再查编译过程和输出文件。文件级设置可以覆盖工程级编译选项;另外,【Make】只更新变化的文件,【Rebuild All】会重新编译并链接当前目标。
1、核对构建配置
①查看顶部配置下拉框,确认当前是刚修改的【Debug】或【Release】。
②选中工程名称,打开【Project】→【Options】,核对修改值。
③切换另一配置检查,确认没有把选项改在未参与构建的配置中。
2、检查文件或分组的局部选项
①展开目标源文件所在分组,查看文件或分组是否带有局部选项标记。
②右键点击该文件或分组,选择【Options】,核对实际编译设置。
③确认不需要局部设置时,点击【Project】→【Remove Local Options】。
④重新打开工程选项,确认目标文件已采用工程设置。
3、重新编译全部文件
①点击【Project】→【Rebuild All】,查看目标源文件是否重新编译。
②仍怀疑使用了旧的中间文件时,依次点击【Project】→【Clean】、【Project】→【Rebuild All】。
③查看构建消息,确认编译和链接均已完成。
4、检查附加选项
①进入【C/C++Compiler】→【Extra Options】,检查是否填写了其他编译参数。
②进入【Linker】→【Extra Options】,核对是否指定了其他链接参数。
③删除确认无效或冲突的参数,保存后重新构建。
5、核对正在比较的文件
①进入【Project】→【Options】→【General】→【Output】,查看可执行文件输出目录。
②进入【Linker】→【Output】,核对输出文件名。
③如果使用Hex文件,检查输出转换设置和文件修改时间。
④若比较的是板上运行结果,重新下载本次生成的固件。
三、怎样确认工程选项已经生效
“结果没变化”可能指编译命令、输出文件或板上现象没有变化。分别检查这些对象,才能判断选项是否参与了构建。有些宏在代码中并未使用,即使设置成功,也不会让生成文件发生变化。
1、查看实际编译命令
①在构建消息窗口右键选择【All】。
②点击【Project】→【Rebuild All】,查看目标文件的编译命令。
③将命令中的优化参数、宏定义和链接文件路径与工程选项比对。
2、检查链接结果
①进入【Linker】→【List】,勾选【Generate linker map file】。
②重新构建,打开本次生成的映射文件。
③对比目标段、符号地址及内存占用,确认链接结果是否变化。
3、核对预期变化
①修改宏定义后,搜索源文件中是否使用了该宏。
②修改优化级别后,查看目标函数的反汇编或映射文件。
③若修改的是【Debugger】中的设置,进入调试会话检查效果。
总结
判断工程选项是否生效,关键是找到“设置值、实际编译命令、最终输出文件”之间的对应关系。把配置名称和输出路径记录清楚,之后切换Debug、Release或交接工程时,也更容易复现编译结果。希望这篇关于“IAR怎么设置工程选项IAR工程选项修改后编译结果没有变化如何检查”的内容对大家有所帮助;如有IAR相关需求,欢迎联系我们咨询。