
使用rtthread-studio创建工程,rtt版本为5.2.2,生成的工程不做任何修改,就大量报警告,比如如下:某个函数没有被提前声明。

这是rtsched.h文件在

这部分有如下定义,只有提前定义了__RT_KERNEL_SOURCE__或__RT_IPC_SOURCE__,源文件在引用rtsched.h文件后才能引用到这些调度文件。这一设置的目的,是保证核心调度函数不会暴露在用户面前。
所以针对该警告,不能将__RT_KERNEL_SOURCE__定义在rtsched.h头文件中。而是应该,哪里调用了这些报警告的函数,哪个源文件文件头(也就是在include头文件部分代码之前)定义__RT_KERNEL_SOURCE__,比如如下:

这样操作,可以解决部分内核调度函数调用,没有函数引用的警告。
对于后续的strlen部分警告,如下:

这是由于strlen没有提前声明。也就是需要引用string.h头文件,可以在board.h或者别的什么地方引用<string.h>,解决此警告。
在这之后,就可以保证初始工程0错误、0警告。