KEIL消除警告:error in include chain(cmsis_armcc.h):expected identifier or ‘(‘

在移植工程的时候,头文件包含了cortex系列的头文件和cmsis的armcc头文件。

编译过后是0错误0警告的,程序下载运行也是没问题的。但是keil左边有个大叉号,提示头文件错误error in include chain(cmsis_armcc.h):expected identifier or '(' 。

经过逐层寻找发现在cmsis_armcc.h中的静态内联没有定义,但是gotodefine依旧可以跳转,于是把cm0plus.h头文件include一下,好了叉号没有了。。。但是!!编译工程全是警告---方法不可行。

参考博文  点这里,和作者一样我也有强迫症,使用博主的方法成功解决,到Keil的安装目录下的 UV4 文件夹,搜索找到文件夹中的 UVCC.ini 文件,用记事本打开,将报错的那个头文件添加到文件中 (即添加一句 xxxx.h  = *

; specification of errors which are to be ignored for syntax highlighting
; format: ini file, section beginning with '[' is skipped
; module = *		:== ignore all messages associated with this module
; module = line		:== ignore all messages associated with the specified line number in this module
; e.g. abc.h = 275  ; all messages associated with line number 275 in abc.h will be ignored

core_cm0.h      = *
core_cm3.h      = *
core_cm4.h		= *
core_cm0plus.h	= *
core_cm4_simd.h = *
core_cmInstr.h  = *
limits          = *
math.h          = *
string.h        = *
wchar.h         = *
STM32F10x.h     = *
stdio.h         = *
stdarg.h		= *
system_stm32f10x.h = *
cmsis_armcc.h	= *

大体的意思就是哪个头文件报错,就把这个错误忽略掉。。(ignore) 形式就是 moudle = *或者 moudle = line_number

也就是说keil启动的时候会读取这个初始化文件,把所提到的文件全部或者其中几行的错误或警告忽略掉,但是不是代表编译不会报错。

 

 

 

你可能感兴趣的:(keil,arm,linux,keil,mdk)