一、出现的问题
最近使用 Keil-MDK 中的 ARM Compiler 6(简称AC6)编译工程时,
出现警告:warning: illegal character encoding in string literal [-Winvalid-source-encoding] 。
二、解决办法
- 定位到出现警告的地方
定位到出现警告的地方,是在使用 printf() 函数打印输出包含中文字符串。
如果项目中有使用 printf() 函数打印输出包含中文字符串,则 AC6 编译过程会弹出警告信息,虽然不影响使用,但是十分烦人。
- 屏蔽警告信息
点击 “Options for Target…”,选择 “C/C++(AC6)” 栏,
在 “Misc Controls” 框中填入 -Wno-invalid-source-encoding 将这类警告信息屏蔽。
三、总结
出现这种状况,大概是因为 AC6 对于中文支持不好吧。
项目文件目录一定不要有中文路径,否则不能使用 “Go To Definition” 跳转功能。