printk的初级问题
我刚学习设备驱动的开发。看《Linux 设备驱动程序》一书的初级例子。
/*ModuleDemo.cpp*/
#include <linux/module.h>
#include <linux/kernel.h>
int init_module()
{
printk( "Hello module world!" );
return 0;
}
void cleanup_module()
{
printk( "Goodby cruel world!" );
}
我在Redhat下编译:
g++ -I /usr/src/linux/include -g ModuleDemo.cpp -o ModuleDemo
但编译不能通过,提示:
printk undeclared (first use this function)
printk不是包含在kernel里面吗?
请问各位大侠,这是怎么回事?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
应该是目录的包含问题,的确应该注意内核的版本。
2.6的编译方式较以前的版本的确有很大的不同
没记错的话你漏了 #include <linux/errno.h>
说一下2.几的内核, 2.6 和2.6以前的内核编译方法是不一样的.