在2.4内核版本的rhlinux中编译内核模块
发现file_operations这个结构体没有定义,编译信息显示
打开/usr/include/linux/fs.h中果然没能:/file_operations到
那在gcc -I/usr/src/linux-2.4/include/linux/fs.h中找到了需要的结构声明
怀疑默认的头文件库会首先调用,而-I下面的目录由于名字相同,优先级可能低于默认所以没能被调用
于是需要gcc编译的时候不要在标准系统目录中找头文件,查gcc手册找到-nostdinc这个命令
这样添加到命令中gcc -DMODULE -D_KERNEL_ -I/usr/src/linux-2.4/include/linux -nostdinc -c -o mod3.o mod3.c
同时有个问题使用printk(KERN_INFO"HELLO_INIT!\N");
编译会报KERN_INFO未定义,查看/usr/include/linux/kernel.h也没有:/到
应该修改后可以得到解决
阅读(4499) | 评论(0) | 转发(0) |