返回信息流我编译老是出错啊。不知道咋整了
这是一条镜像帖。来源:北邮人论坛 / embedded-system / #5589同步于 2009/8/17
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Embedded_System机器人发帖
有编译过 Linux Device Driver 3的例子程序的么?
hman
2009/8/17镜像同步3 回复
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
【 在 hman 的大作中提到: 】
: 我编译老是出错啊。不知道咋整了
从网上下载的源码里有Makefile ,直接make就行了。
如果还有错,就安照他的内核版本下载一个
ps: 有啥错,直接贴上,更容易让人回复
Just a mess, 您真想看?
make: Warning: File `.depend' has modification time 6.7e+07 s in the future
cc -D__KERNEL__ -DMODULE -Wall -O2 -I/usr/include -c -o main.o main.c
main.c:15:26: error: linux/module.h: No such file or directory
main.c:18: error: \u2018UTS_RELEASE\u2019 undeclared here (not in a function)
main.c:21:42: error: linux/malloc.h: No such file or directory
main.c:25:27: error: linux/proc_fs.h: No such file or directory
main.c:28:47: error: asm/system.h: No such file or directory
main.c:29:48: error: asm/segment.h: No such file or directory
In file included from main.c:31:
scull.h:121: warning: \u2018struct file\u2019 declared inside parameter list
scull.h:121: warning: its scope is only this definition or declaration, which is probably not what you want
scull.h:121: warning: \u2018struct inode\u2019 declared inside parameter list
scull.h:123: warning: \u2018struct file\u2019 declared inside parameter list
scull.h:123: warning: \u2018struct inode\u2019 declared inside parameter list
scull.h:125: warning: \u2018struct file\u2019 declared inside parameter list
scull.h:125: warning: \u2018struct inode\u2019 declared inside parameter list
scull.h:127: warning: \u2018struct file\u2019 declared inside parameter list
scull.h:127: warning: \u2018struct inode\u2019 declared inside parameter list
main.c: In function \u2018scull_trim\u2019:
main.c:74: warning: implicit declaration of function \u2018kfree\u2019
main.c: At top level:
main.c:136: warning: \u2018struct file\u2019 declared inside parameter list
main.c:136: warning: \u2018struct inode\u2019 declared inside parameter list
main.c: In function \u2018scull_open\u2019:
main.c:138: warning: implicit declaration of function \u2018MINOR\u2019
main.c:138: error: dereferencing pointer to incomplete type
main.c:138: error: request for member \u2018i_rdev\u2019 in something not a structure or union
main.c:139: error: dereferencing pointer to incomplete type
main.c:139: error: request for member \u2018i_rdev\u2019 in something not a structure or union
main.c:145: error: dereferencing pointer to incomplete type
main.c:145: error: request for member \u2018f_op\u2019 in something not a structure or union
main.c:145: warning: statement with no effect
main.c:146: error: dereferencing pointer to incomplete type
main.c:146: error: request for member \u2018f_op\u2019 in something not a structure or union
main.c:146: error: request for member \u2018open\u2019 in something not a structure or union
main.c:146: error: called object \u2018<erroneous-expression>\u2019 is not a function
main.c:146: warning: return makes integer from pointer without a cast
main.c:154: error: dereferencing pointer to incomplete type
main.c:154: error: request for member \u2018f_flags\u2019 in something not a structure or union
main.c:154: error: invalid operands to binary &
main.c:154: warning: comparison between pointer and integer
main.c:158: error: dereferencing pointer to incomplete type
main.c:158: error: request for member \u2018private_data\u2019 in something not a structure or union
main.c:158: warning: statement with no effect
main.c:160: error: \u2018MOD_INC_USE_COUNT\u2019 undeclared (first use in this function)
main.c:160: error: (Each undeclared identifier is reported only once
main.c:160: error: for each function it appears in.)
main.c:160: warning: statement with no effect
main.c: At top level:
main.c:164: warning: \u2018struct file\u2019 declared inside parameter list
main.c:164: warning: \u2018struct inode\u2019 declared inside parameter list
main.c: In function \u2018scull_release\u2019:
main.c:166: error: \u2018MOD_DEC_USE_COUNT\u2019 undeclared (first use in this function)
main.c:166: warning: statement with no effect
main.c: In function \u2018scull_follow\u2019:
main.c:175: warning: implicit declaration of function \u2018kmalloc\u2019
main.c:175: error: \u2018GFP_KERNEL\u2019 undeclared (first use in this function)
main.c:175: warning: assignment makes pointer from integer without a cast
main.c:176: warning: implicit declaration of function \u2018memset\u2019
main.c:176: warning: incompatible implicit declaration of built-in function \u2018memset\u2019
main.c: At top level:
main.c:189: warning: \u2018struct file\u2019 declared inside parameter list
main.c:189: warning: \u2018struct inode\u2019 declared inside parameter list
main.c:190: error: conflicting types for \u2018scull_read\u2019
scull.h:121: error: previous declaration of \u2018scull_read\u2019 was here
main.c: In function \u2018scull_read\u2019:
main.c:191: error: dereferencing pointer to incomplete type
main.c:191: error: request for member \u2018private_data\u2019 in something not a structure or union
main.c:191: warning: initialization from incompatible pointer type
main.c:195: error: dereferencing pointer to incomplete type
main.c:195: error: request for member \u2018f_pos\u2019 in something not a structure or union
main.c:218: warning: implicit declaration of function \u2018memcpy_tofs\u2019
main.c:221: error: dereferencing pointer to incomplete type
main.c:221: error: request for member \u2018f_pos\u2019 in something not a structure or union
main.c:221: warning: statement with no effect
main.c: At top level:
main.c:226: warning: \u2018struct file\u2019 declared inside parameter list
main.c:226: warning: \u2018struct inode\u2019 declared inside parameter list
main.c:227: error: conflicting types for \u2018scull_write\u2019
scull.h:123: error: previous declaration of \u2018scull_write\u2019 was here
main.c: In function \u2018scull_write\u2019:
main.c:228: error: dereferencing pointer to incomplete type
main.c:228: error: request for member \u2018private_data\u2019 in something not a structure or union
main.c:228: warning: initialization from incompatible pointer type
main.c:233: error: dereferencing pointer to incomplete type
main.c:233: error: request for member \u2018f_pos\u2019 in something not a structure or union
main.c:244: error: \u2018GFP_KERNEL\u2019 undeclared (first use in this function)
main.c:244: warning: assignment makes pointer from integer without a cast
main.c:247: warning: incompatible implicit declaration of built-in function \u2018memset\u2019
main.c:250: warning: assignment makes pointer from integer without a cast
main.c:258: warning: implicit declaration of function \u2018memcpy_fromfs\u2019
main.c:264: error: dereferencing pointer to incomplete type
main.c:264: error: request for member \u2018f_pos\u2019 in something not a structure or union
main.c:264: warning: statement with no effect
main.c: At top level:
main.c:273: warning: \u2018struct file\u2019 declared inside parameter list
main.c:273: warning: \u2018struct inode\u2019 declared inside parameter list
main.c:274: error: conflicting types for \u2018scull_ioctl\u2019
scull.h:127: error: previous declaration of \u2018scull_ioctl\u2019 was here
main.c: In function \u2018scull_ioctl\u2019:
main.c:292: warning: implicit declaration of function \u2018verify_area\u2019
main.c:292: error: \u2018VERIFY_WRITE\u2019 undeclared (first use in this function)
main.c:294: error: \u2018VERIFY_READ\u2019 undeclared (first use in this function)
main.c:314: error: subscripted value is neither array nor pointer
main.c:314: warning: comparison between pointer and integer
main.c:314: error: case label does not reduce to an integer constant
main.c:315: warning: implicit declaration of function \u2018get_user\u2019
main.c:322: error: subscripted value is neither array nor pointer
main.c:322: warning: comparison between pointer and integer
main.c:322: error: case label does not reduce to an integer constant
main.c:323: warning: implicit declaration of function \u2018put_user\u2019
main.c:329: error: subscripted value is neither array nor pointer
main.c:329: warning: comparison between pointer and integer
main.c:329: error: case label does not reduce to an integer constant
main.c:340: error: subscripted value is neither array nor pointer
main.c:340: warning: comparison between pointer and integer
main.c:340: error: case label does not reduce to an integer constant
main.c:348: error: subscripted value is neither array nor pointer
main.c:348: warning: comparison between pointer and integer
main.c:348: error: case label does not reduce to an integer constant
main.c:355: error: subscripted value is neither array nor pointer
main.c:355: warning: comparison between pointer and integer
main.c:355: error: case label does not reduce to an integer constant
main.c: At top level:
main.c:392: warning: \u2018struct file\u2019 declared inside parameter list
main.c:392: warning: \u2018struct inode\u2019 declared inside parameter list
main.c:393: error: conflicting types for \u2018scull_lseek\u2019
scull.h:125: error: previous declaration of \u2018scull_lseek\u2019 was here
main.c: In function \u2018scull_lseek\u2019:
main.c:394: error: dereferencing pointer to incomplete type
main.c:394: error: request for member \u2018private_data\u2019 in something not a structure or union
main.c:394: warning: initialization from incompatible pointer type
main.c:403: error: dereferencing pointer to incomplete type
main.c:403: error: request for member \u2018f_pos\u2019 in something not a structure or union
main.c:403: warning: assignment makes integer from pointer without a cast
main.c:414: error: dereferencing pointer to incomplete type
main.c:414: error: request for member \u2018f_pos\u2019 in something not a structure or union
main.c:414: warning: statement with no effect
main.c: At top level:
main.c:423: error: variable \u2018scull_fops\u2019 has initializer but incomplete type
main.c:424: warning: excess elements in struct initializer
main.c:424: warning: (near initialization for \u2018scull_fops\u2019)
main.c:425: warning: excess elements in struct initializer
main.c:425: warning: (near initialization for \u2018scull_fops\u2019)
main.c:426: warning: excess elements in struct initializer
main.c:426: warning: (near initialization for \u2018scull_fops\u2019)
main.c:427: warning: excess elements in struct initializer
main.c:427: warning: (near initialization for \u2018scull_fops\u2019)
main.c:428: warning: excess elements in struct initializer
main.c:428: warning: (near initialization for \u2018scull_fops\u2019)
main.c:429: warning: excess elements in struct initializer
main.c:429: warning: (near initialization for \u2018scull_fops\u2019)
main.c:430: warning: excess elements in struct initializer
main.c:430: warning: (near initialization for \u2018scull_fops\u2019)
main.c:431: warning: excess elements in struct initializer
main.c:431: warning: (near initialization for \u2018scull_fops\u2019)
main.c:432: warning: excess elements in struct initializer
main.c:432: warning: (near initialization for \u2018scull_fops\u2019)
main.c: In function \u2018init_module\u2019:
main.c:446: warning: implicit declaration of function \u2018register_chrdev\u2019
main.c:448: warning: implicit declaration of function \u2018printk\u2019
main.c:448: error: \u2018KERN_WARNING\u2019 undeclared (first use in this function)
main.c:448: error: expected \u2018)\u2019 before string constant
main.c:457: error: \u2018GFP_KERNEL\u2019 undeclared (first use in this function)
main.c:457: warning: assignment makes pointer from integer without a cast
main.c:462: warning: incompatible implicit declaration of built-in function \u2018memset\u2019
main.c:476: warning: implicit declaration of function \u2018register_symtab\u2019
main.c:488: warning: implicit declaration of function \u2018unregister_chrdev\u2019
make: *** [main.o] Error 1
没那么可怕,就是个头文件包含路径的问题,动手解决一下吧
【 在 hman (Wizard) 的大作中提到: 】
: Just a mess, 您真想看?
: make: Warning: File `.depend' has modification time 6.7e+07 s in the future
: cc -D__KERNEL__ -DMODULE -Wall -O2 -I/usr/include -c -o main.o main.c
: ...................