阅读:1143回复:3
请问各位大虾,这编译错误是版本的原因吗?
请问各位大虾,这编译错误是版本的原因吗?
编译命令该如何写?请各位大虾告诉小弟是什么原因,谢了! 我写了一个很简单的linux驱动,程序如下: #define MODULE #define __KERNEL__ #include <linux/module.h> #include <linux/kernel.h> #include <linux/string.h> #include <linux/fs.h> #include <linux/malloc.h> #include <asm/unistd.h> #include <sys/syscall.h> #include <asm/fcntl.h> #include <asm/errno.h> #include <linux/types.h> #include <linux/dirent.h> static int driver_open(struct inode *i, struct file *f) { printk(\"<1>Open Function\\n\"); return 0; } static struct file_operations fops = { NULL, /* owner */ NULL, /*lseek*/ NULL, /*read*/ NULL, /*write*/ NULL, /*readdir*/ NULL, /*poll*/ NULL, /*ioctl*/ NULL, /*mmap*/ driver_open, /*open, take a look at my dummy open function*/ NULL, /*release*/ NULL, /*fsync...*/ NULL, NULL, NULL, NULL, NULL }; int init_module(void) { if(register_chrdev(30, \"mydriver\", &fops)) return -EIO; return 0; } void cleanup_module(void) { /*unregister our driver*/ unregister_chrdev(30, \"mydriver\"); } 然后用gcc -O2 -DMODULE -D _KERNEL_ -c test.c时会出现如下错误: /usr/include/linux/module.h:60:parser error before \'atomic_t\' /usr/include/linux/module.h:60:warning.... /usr/include/linux/module.h:60:warning.... /usr/include/linux/module.h:62:parser error before \'}\' /usr/include/linux/module.h:91:parser error before \'}\' |
|
|
沙发#
发布于:2004-04-26 15:00
用 -I 指定内核库文件所在目录,不要用普通应用程序编译时的库文件目录
|
|
板凳#
发布于:2004-04-27 07:13
驱动没错,看makefile
|
|
地板#
发布于:2004-04-27 09:42
谢谢各位大虾!
引用: 用 -I 指定内核库文件所在目录,不要用普通应用程序编译时的库文件目录 然后用gcc -O2 -DMODULE -D _KERNEL_ -c test.c \\I /usr/src/linux-2.4/include进行编译,好象没错误,有一些warning,请问各位大虾为何在源文件当地看不到test.o文件 |
|
|