|
我是个初学者,学习编写模块,但编译的时候总是出问题,我用的是ArchLinux 0.8
源码:
//hello_m.c
#include <linux/module.h> //所有模块都需要的头文件
#include <linux/init.h> // init&exit相关宏
MODULE_LICENSE("GPL");
static int __init hello_init (void)
{
printk("Hello module init\n");
return 0;
}
static void __exit hello_exit (void)
{
printk("Hello module exit\n");
}
module_init(hello_init);
module_exit(hello_exit);
Makefile:
DELAGS = -D__KERNEL__ -DMODULE -DLINUX -I /usr/src/linux/include
hello_m.o:hello_m.c
gcc $(DELAGS) -c hello_m.c -o hello_m.o
clean:
rm -f *.o
编译与错误:
[root@zhangds module01]# make
gcc -D__KERNEL__ -DMODULE -DLINUX -I /usr/src/linux/include hello_m.c -o hello_m.o
In file included from /usr/src/linux/include/asm/thread_info.h:16,
from /usr/src/linux/include/linux/thread_info.h:21,
from /usr/src/linux/include/linux/preempt.h:9,
from /usr/src/linux/include/linux/spinlock.h:49,
from /usr/src/linux/include/linux/module.h:9,
from hello_m.c:1:
/usr/src/linux/include/asm/processor.h:82: 错误:‘CONFIG_X86_L1_CACHE_SHIFT’ 未声明 (不在函数内)
/usr/src/linux/include/asm/processor.h:82: 错误:要求的对齐边界不是常量
在包含自 /usr/src/linux/include/linux/sched.h:51 的文件中,
从 /usr/src/linux/include/linux/utsname.h:35,
从 /usr/src/linux/include/asm/elf.h:12,
从 /usr/src/linux/include/linux/elf.h:7,
从 /usr/src/linux/include/linux/module.h:15,
从 hello_m.c:1:
/usr/src/linux/include/linux/jiffies.h:33:3: 错误:#error You lose.
/usr/src/linux/include/linux/jiffies.h:225:31: 错误:#if 中用零做除数
/usr/src/linux/include/linux/jiffies.h:225:31: 错误:#if 中用零做除数
/usr/src/linux/include/linux/jiffies.h:225:31: 错误:#if 中用零做除数
/usr/src/linux/include/linux/jiffies.h:225:31: 错误:#if 中用零做除数
/usr/src/linux/include/linux/jiffies.h:225:31: 错误:#if 中用零做除数
/usr/src/linux/include/linux/jiffies.h:225:31: 错误:#if 中用零做除数
/usr/src/linux/include/linux/jiffies.h:225:31: 错误:#if 中用零做除数
/usr/src/linux/include/linux/jiffies.h:225:31: 错误:#if 中用零做除数
/usr/src/linux/include/linux/jiffies.h:225:31: 错误:#if 中用零做除数
/usr/src/linux/include/linux/jiffies.h:225:31: 错误:#if 中用零做除数
/usr/src/linux/include/linux/jiffies.h:225:31: 错误:#if 中用零做除数
/usr/src/linux/include/linux/jiffies.h:225:31: 错误:#if 中用零做除数
/usr/src/linux/include/linux/jiffies.h:225:31: 错误:#if 中用零做除数
/usr/src/linux/include/linux/jiffies.h:225:31: 错误:#if 中用零做除数
/usr/src/linux/include/linux/jiffies.h:225:31: 错误:#if 中用零做除数
/usr/src/linux/include/linux/jiffies.h:225:31: 错误:#if 中用零做除数
/usr/src/linux/include/linux/jiffies.h:269:46: 错误:#if 中用零做除数
In file included from /usr/src/linux/include/linux/sched.h:51,
from /usr/src/linux/include/linux/utsname.h:35,
from /usr/src/linux/include/asm/elf.h:12,
from /usr/src/linux/include/linux/elf.h:7,
from /usr/src/linux/include/linux/module.h:15,
from hello_m.c:1:
/usr/src/linux/include/linux/jiffies.h: 在函数 ‘jiffies_to_msecs’ 中:
/usr/src/linux/include/linux/jiffies.h:274: 错误:‘CONFIG_HZ’ 未声明 (在此函数内第一次使用)
/usr/src/linux/include/linux/jiffies.h:274: 错误:(即使在一个函数内多次出现,每个未声明的标识符在其
/usr/src/linux/include/linux/jiffies.h:274: 错误:所在的函数内只报告一次。)
/usr/src/linux/include/linux/jiffies.h:280:46: 错误:#if 中用零做除数
/usr/src/linux/include/linux/jiffies.h: 在函数 ‘jiffies_to_usecs’ 中:
/usr/src/linux/include/linux/jiffies.h:285: 错误:‘CONFIG_HZ’ 未声明 (在此函数内第一次使用)
/usr/src/linux/include/linux/jiffies.h:293:46: 错误:#if 中用零做除数
/usr/src/linux/include/linux/jiffies.h: 在函数 ‘msecs_to_jiffies’ 中:
/usr/src/linux/include/linux/jiffies.h:298: 错误:‘CONFIG_HZ’ 未声明 (在此函数内第一次使用)
/usr/src/linux/include/linux/jiffies.h:306:46: 错误:#if 中用零做除数
/usr/src/linux/include/linux/jiffies.h: 在函数 ‘usecs_to_jiffies’ 中:
/usr/src/linux/include/linux/jiffies.h:311: 错误:‘CONFIG_HZ’ 未声明 (在此函数内第一次使用)
/usr/src/linux/include/linux/jiffies.h: 在函数 ‘timespec_to_jiffies’ 中:
/usr/src/linux/include/linux/jiffies.h:330: 错误:‘CONFIG_HZ’ 未声明 (在此函数内第一次使用)
/usr/src/linux/include/linux/jiffies.h:336: 错误:‘SHIFT_HZ’ 未声明 (在此函数内第一次使用)
/usr/src/linux/include/linux/jiffies.h: 在函数 ‘jiffies_to_timespec’ 中:
/usr/src/linux/include/linux/jiffies.h:349: 错误:‘CONFIG_HZ’ 未声明 (在此函数内第一次使用)
/usr/src/linux/include/linux/jiffies.h: 在函数 ‘timeval_to_jiffies’ 中:
/usr/src/linux/include/linux/jiffies.h:371: 错误:‘CONFIG_HZ’ 未声明 (在此函数内第一次使用)
/usr/src/linux/include/linux/jiffies.h:375: 错误:‘SHIFT_HZ’ 未声明 (在此函数内第一次使用)
/usr/src/linux/include/linux/jiffies.h: 在函数 ‘jiffies_to_timeval’ 中:
/usr/src/linux/include/linux/jiffies.h:387: 错误:‘CONFIG_HZ’ 未声明 (在此函数内第一次使用)
/usr/src/linux/include/linux/jiffies.h:400:6: 错误:#if 中用零做除数
/usr/src/linux/include/linux/jiffies.h:400:6: 错误:#if 中用零做除数
/usr/src/linux/include/linux/jiffies.h:400:6: 错误:#if 中用零做除数
/usr/src/linux/include/linux/jiffies.h:400:6: 错误:#if 中用零做除数
/usr/src/linux/include/linux/jiffies.h:400:6: 错误:#if 中用零做除数
/usr/src/linux/include/linux/jiffies.h:400:6: 错误:#if 中用零做除数
/usr/src/linux/include/linux/jiffies.h:400:6: 错误:#if 中用零做除数
/usr/src/linux/include/linux/jiffies.h:400:6: 错误:#if 中用零做除数
/usr/src/linux/include/linux/jiffies.h:400:6: 错误:#if 中用零做除数
/usr/src/linux/include/linux/jiffies.h:400:6: 错误:#if 中用零做除数
/usr/src/linux/include/linux/jiffies.h:400:6: 错误:#if 中用零做除数
/usr/src/linux/include/linux/jiffies.h:400:6: 错误:#if 中用零做除数
/usr/src/linux/include/linux/jiffies.h:400:6: 错误:#if 中用零做除数
/usr/src/linux/include/linux/jiffies.h:400:6: 错误:#if 中用零做除数
/usr/src/linux/include/linux/jiffies.h:400:6: 错误:#if 中用零做除数
/usr/src/linux/include/linux/jiffies.h:400:6: 错误:#if 中用零做除数
/usr/src/linux/include/linux/jiffies.h: 在函数 ‘jiffies_to_clock_t’ 中:
/usr/src/linux/include/linux/jiffies.h:401: 错误:‘CONFIG_HZ’ 未声明 (在此函数内第一次使用)
/usr/src/linux/include/linux/jiffies.h: 在函数 ‘clock_t_to_jiffies’ 中:
/usr/src/linux/include/linux/jiffies.h:412: 错误:‘CONFIG_HZ’ 未声明 (在此函数内第一次使用)
/usr/src/linux/include/linux/jiffies.h:431:6: 错误:#if 中用零做除数
/usr/src/linux/include/linux/jiffies.h:431:6: 错误:#if 中用零做除数
/usr/src/linux/include/linux/jiffies.h:431:6: 错误:#if 中用零做除数
/usr/src/linux/include/linux/jiffies.h:431:6: 错误:#if 中用零做除数
/usr/src/linux/include/linux/jiffies.h:431:6: 错误:#if 中用零做除数
/usr/src/linux/include/linux/jiffies.h:431:6: 错误:#if 中用零做除数
/usr/src/linux/include/linux/jiffies.h:431:6: 错误:#if 中用零做除数
/usr/src/linux/include/linux/jiffies.h:431:6: 错误:#if 中用零做除数
/usr/src/linux/include/linux/jiffies.h:431:6: 错误:#if 中用零做除数
/usr/src/linux/include/linux/jiffies.h:431:6: 错误:#if 中用零做除数
/usr/src/linux/include/linux/jiffies.h:431:6: 错误:#if 中用零做除数
/usr/src/linux/include/linux/jiffies.h:431:6: 错误:#if 中用零做除数
/usr/src/linux/include/linux/jiffies.h:431:6: 错误:#if 中用零做除数
/usr/src/linux/include/linux/jiffies.h:431:6: 错误:#if 中用零做除数
/usr/src/linux/include/linux/jiffies.h:431:6: 错误:#if 中用零做除数
/usr/src/linux/include/linux/jiffies.h:431:6: 错误:#if 中用零做除数
/usr/src/linux/include/linux/jiffies.h: 在函数 ‘jiffies_64_to_clock_t’ 中:
/usr/src/linux/include/linux/jiffies.h:432: 错误:‘CONFIG_HZ’ 未声明 (在此函数内第一次使用)
在包含自 /usr/src/linux/include/linux/module.h:21 的文件中,
从 hello_m.c:1:
/usr/src/linux/include/asm/module.h:62:2: 错误:#error unknown processor family
make: *** [hello_m.o] 错误 1
谢谢 |
|