PS:
这种类型的错误通常出现在Kile编译器生成的临时文件(通过使用 .i 文件扩展名)中。通常情况下,这些文件是编译器用来处理预处理和其他编译阶段的输出。但是,由于这里显示的错误是“Malformed”,这可能意味着这些文件已损坏或无效。
为了解决这个问题,有人提出以下几个步骤:
-
清理项目:在重新构建项目之前,先尝试清理项目。这将删除生成的临时文件以及其他中间文件。在 Keil 中,你可以在 "Project" 菜单下找到 "Rebuild all target files" 或者 "Clean target files" 选项。
-
手动删除临时文件:如果清理项目后问题仍然存在,你可以手动删除这些临时文件。在你的工程目录中找到 .\objects\ 文件夹,并尝试删除 rcc.__i 和 prockeyone.__i 文件,然后重新构建项目。
-
检查文件内容:如果上述步骤都无效,你可以尝试检查这些 via 文件的内容,看看是否存在任何异常。这些文件通常位于 Keil 项目文件夹中的 objects 子文件夹中。你可以尝试手动打开这些文件,并查看是否存在任何不正常的内容。
-
检查代码中的错误:最后,检查代码中是否存在语法错误或其他编译器无法处理的问题。有时候,编译器可能会由于代码本身的问题而生成损坏的临时文件。
(但以上在我那种情况不适用)
My workaround:
背景:
由于我每次完成一个Keil实验任务后便在文件名后添加“(完结)”进行重命名如,这导致偶尔一次我再去执行这个文件时出现了如图1.2报错,一开始我以为是我折腾环境变量无意间修改了一些启动代码,但我发现其他还在做的文件却没有这种报错,于是进行对比开展了一系列试验。
图1.1
图1.2
试验:
情况1
情况2
结果:
情况1
情况2
总结:
Keil编译器对文件命名使用类似于"()"这类符号的话会出现Malformed via file 报错(通过文件格式错误),解决方式便不言而喻了,不作死使用类似于"()"这类符号对文件命名就行了!