修改代码后再次构建,TASKING很快提示完成,日志里却没有刚改过的文件,这时先核对工程、构建配置和文件保存状态。以TriCore VX-toolset的Eclipse工程为例,增量编译无需单独启用:执行工程构建后,构建工具会根据文件及其依赖决定需要重新处理的部分。
一、TASKING怎么配置增量编译
日常增量编译使用工程构建命令;需要编译所有文件时,再清理并重建工程。保存文件后自动构建属于另一项设置,开启前要同时核对工作区菜单和工程属性。
1、选定构建配置
①在工程视图中右键点击目标工程,依次选择【Build Configurations】→【Set Active】。
②点击本次要使用的配置,例如【Debug】或【Release】。
③右键点击工程,进入【Properties】→【C/C++Build】→【Settings】,核对【Configuration】中的选项设置。
2、执行增量编译
①打开修改过的源文件,按【Ctrl+S】保存。
②在工程视图中选中目标工程,点击【Project】→【Build Project】。
③打开【Console】,查找该源文件的编译记录。
④不再修改文件,再次点击【Build Project】,核对它是否被重复编译。
3、按需设置保存后自动构建
①点击【Project】→【Build Automatically】,确认菜单项已勾选。
②右键点击工程,进入【Properties】→【C/C++Build】→【Behavior】。
③勾选【Build on resource save(Auto build)】,点击【Apply and Close】。
④修改并保存一个源文件,打开【Console】查看构建是否启动。
4、核对本次构建结果
①选中工程并点击【Project】→【Build Project】。
②打开【Console】,核对日志开头的工程名和构建配置名。
③展开工程中对应配置的输出目录,查看目标文件与程序文件。
④记录本次修改的源文件名,供后续排查时与日志逐项核对。
二、TASKING修改代码后没有重新编译如何检查
先确认改动进入了当前工程。如果改的是头文件,还要检查引用它的源文件及依赖记录。TASKING的构建过程使用make工具处理目标与依赖;文件被排除构建时,则不会因为再次点击构建而参与编译。
1、检查保存与工程刷新
①打开修改过的文件,查看编辑器标签上的未保存标记,按【Ctrl+S】保存。
②若文件由外部编辑器修改,在工程视图中右键点击工程,选择【Refresh】。
③重新打开文件核对内容,再点击【Project】→【Build Project】。
④在【Console】中查找文件名及新的编译记录。
2、检查文件是否被排除
①在工程视图中右键点击目标源文件,依次选择【Resource Configurations】→【Exclude from Build...】。
②查看当前构建配置;若它被勾选为排除,取消勾选。
③点击【OK】,选中工程并执行【Project】→【Build Project】。
④若源文件所在文件夹也被排除,对该文件夹重复上述检查。
3、核对实际构建的配置
①在工程视图中右键点击目标工程,打开【Build Configurations】→【Set Active】。
②确认勾选的是需要编译的配置;不一致时,点击正确的配置名称。
③选中工程,执行【Project】→【Build Project】。
④打开【Console】,核对日志中的工程名、配置名及源文件名。
4、检查头文件依赖
①打开改动过的头文件,记下文件名及所在路径。
②打开预期应重新编译的源文件,检查其中的#include是否引用该头文件。
③展开当前配置的输出目录,查找该源文件对应的.d依赖文件,核对其中的头文件路径。
④若依赖文件缺失或路径不符,点击【Project】→【Clean...】,勾选【Start a build immediately】,再点击【Clean】。
5、用完整重建缩小范围
①点击【Project】→【Clean...】,选择目标工程。
②勾选【Start a build immediately】,点击【Clean】。
③打开【Console】,查找目标源文件的编译记录。
④若完整重建仍没有该文件,检查文件归属和【Exclude from Build...】;若完整重建正常,则返回检查工程刷新与头文件依赖。
三、怎样验证增量编译恢复正常
构建成功只说明当前任务完成。要确认增量编译确实处理了新代码,可以用一个参与当前配置的源文件,连续进行两次构建:第一次查看改动是否编译,第二次查看未改动文件是否被复用。
1、验证源文件改动
①打开目标源文件,作一处可识别的修改,按【Ctrl+S】保存。
②选中工程,点击【Project】→【Build Project】。
③在【Console】中确认出现该文件的编译记录。
④不再修改文件,重复点击【Build Project】,确认该文件没有再次编译。
2、验证头文件改动
①修改一个被目标源文件引用的头文件,按【Ctrl+S】保存。
②点击【Project】→【Build Project】,在【Console】中查找引用它的源文件。
③若没有出现,右键点击工程并选择【Refresh】,再次执行【Build Project】。
④仍未触发时,核对对应的.d文件,再执行一次【Clean...】重建依赖记录。
总结
判断增量编译是否正常,关键是把改动文件、当前配置和Console日志对应起来。源文件修改后没有重编译,先查保存状态、工程刷新和排除设置;修改头文件后没有触发相关源文件,再查引用关系与依赖记录。完整重建可以帮助缩小范围,但日常仍应通过连续两次工程构建验证增量编译。希望这些方法能帮助大家检查TASKING修改代码后没有重新编译的问题;如有TASKING相关需求,欢迎联系我们咨询。