ctc E208、E207: syntax error - token inserted、deleted
编译出现ctc E208、E207: syntax error - token inserted、deleted等异常报错
以上错误出现的形式并不固定,可能出现在不同的编译器,然后以类似的形式表现为语法错误。
问题现象
我在对Tasking、Aurix等C语言的IDE进行项目开发时,经常需要进行代码移植。当我移植一段C源码过来后(整个源文件的移植,并非复制代码段的移植),编译时就会出现这种问题。
- 报错内容一般为:
// syntax error
ctc E207 \ E208: syntax error - token "\xbb" deleted
ctc E207 \ E208: syntax error - token "\xbf" deleted
- 源文件显示一般为:
源码的首行(注释、头文件#include等)会出现语法报错,但实际语法上并无问题(包括没有缺少、多的符号等)。
问题分析
根据报错内容显示,以上错误一般由源文件格式存在异常,无法被当前IDE解析编译导致。常出现在代码移植中。
目前在排除了常规语法错误的前提下,导致异常的原因可能有:
【1】移植的IDE版本不同,需要统一版本
【2】源文件头部存在无法被查看的非法字符,需要删除这部分字符
问题解决
- 方法一:使用相同IDE新建工程,再移植。我本人使用这种方法验证过,可行。
- 方法二:使用notepad打开当前工程中未报错的源码文件a以及报错的源码文件b,切换16进制查看。对比两个文件头部几个字节内容,只需要将异常文件的头部几个字节替换为正常文件的头部几个字节即可。根据我的测试来看,一般为6个字符,具体得看不同IDE。
总结
需要注意的是,我的测试IDE为Tasking以及Aurix。其他开发环境未知,可以尝试看看。同时,需要注意的是,明确编译错误是否为非自身语法错误导致的,请确定编写代码确实没有因为包含非法头文件、变量类型等原因导致的异常编译问题。
6541

被折叠的 条评论
为什么被折叠?



