ldd3第三章 scull实验中常见错误


问题1:error: linux/config.h: No such file or directory

在编ldd3的模块时,提示找不到此文件,在/include/linux下确实没有,网上搜索了下,有人说此文件在2.6.19后的内核不存在了,注释掉即可,显然这是不可行的,既然包含此头文件那么肯定要用里面的东西,后搜索到一个外国人的提问,正是这个问题,回答如下:
=======================================================================

The config.h is now called autoconf.h. You could make a symbolic link to solve this:

Code:
cd /usr/src/linux-headers-2.6.27-7-generic/include/linux 
ln -s autoconf.h config.h
符号链接是个好东西,得进一步了解了解。

问题2:scull/pipe.c:131: error: ‘TASK_INTERRUPTIBLE’ undeclared (first use in this function)
原因缺少头文件 #include <linux/sched.h> 添加后即可通过编译 !

问题3:/home/linux/xz/test/ldd3/examples/scull/access.c: In function ‘scull_u_open’:
/home/linux/xz/test/ldd3/examples/scull/access.c:106: error: dereferencing pointer to incomplete type

原因缺少头文件 #include <linux/sched.h> 添加后即可通过编译 !
问题4:access.c:109: error: ‘struct task_struct’ has no member named ‘uid’
struct task_struct定义在include/linux/sched.h中,原来task_struct结构体定义有所改动,将uid和euid等挪到 cred中,见            
       include/linux/sched.h和include/linux/cred.h。

    因此只需要将报error的代码所在的文件做如下修改
    current->uid 修改为 current->cred->uid
    current->euid 修改为 current->cred->euid
问题5: CFLAGS 
CFLAGS += $(DEBFLAGS)

      CFLAGS += -I$(LDDINC)

      修改为:

      EXTRA_CFLAGS += $(DEBFLAGS)

     EXTRA_CFLAGS += -I$(LDDINC)




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值