遇到一个关于printf头文件的离谱的问题,请大佬解惑

跟着韦老师写led的驱动,他里面用的printf函数,man 3 printf 是在stdio.h里,所以他添加了头文件后编译成功了;但是我添加了stdio.h编译显示找不到stdio.h,明明有GLIBC啊

这是我没加头文件的报错

这是加上stdio.h之后报错

这是GLIBC版本
image

Linux内核是5.4

希望大佬解惑,谢谢

image

你好 做了 我直接用韦老师的源码是可以编译成功的 但是源码里面用的是printk 不是printf

驱动使用的头文件一般都在:Linux-5.4/include/ 目录下
kernel 中使用的接口都是 kernel 自己实现的;不使用 glibc;
只有应用才用到 glibc;
内核中的打印函数一般是 printk,有设置当前 log 打印等级的功能;

dev_err 之类的是 printk 的封装;