今天来给大家分享一下,关于之前自己在学习FreeRTOS过程中遇到的一个错误提示,话不多说,我们直接来看~
错误分析
首先,我们看一下错误的提示:error: #35: #error directive: “include FreeRTOS.h” must appear in source files before “include event_groups.h”。编译时候报错如下图所示:
这个错误其实是提示我们,如果我们调用了event_groups.h头文件,那还必须在调用FreeRTOS.h才行。否则编译时候会直接出现相应的预处理错误。因为在event_groups.h的文件里面有这样一段代码,如下:
#ifndef INC_FREERTOS_H
#error "include FreeRTOS.h" must appear in source files before "include event_groups.h"
#endif
可以如果没有预定义INC_FREERTOS_H的话,编译就会到#error这里,而INC_FREERTOS_H是在FreeRTOS.h里面定义的,如图所示:
所以,可以知道我们在使用FreeRTOS的内核源码文件时候都需要配合FreeRTOS.h才行。
解决方法
只需要在你使用到event_groups.h的文件上或者有使用到其他FreeRTOS内核源码的文件上前加上FreeRTOS.h文件即可。加上之后,我们再次编译,可以看到此时编译通过了。
如果有其他小伙伴也遇到这种情况或者相似的情况下,可以参考我的这个例子来解决一下问题。
好了,今天的分享就到这里了~
本人水平有限,上述信息仅供学习参考,如有错误和不妥之处,请多多指教。
另外创作不易,请勿抄袭,如果有帮助到大家的话希望大家可以点个赞和收藏,谢谢~