阅读:1652回复:5
初学提问,菜鸟编译hello问题,请高手点拔
照操很简单的
#define MODULE #include <linux/module.h> int init_module(void) { printk("<1>Hello, world\n"); return 0; } void cleanup_module(void) { printk("<1>Goodbye cruel world\n"); } 我用gcc -c hello.c 编译,但是 insmod 提示 couldn't find the kernel version the module was compiled for 版本不对,我用的rh9 2.4.20-8 ,我改怎么指定编译版本呢? |
|
|
沙发#
发布于:2004-04-08 11:24
再补充一下insmod hello.o的提示
hello.o: kernel-module version mismatch hello.o was compiled for kernel version 2.4.20 while this kernel is version 2.4.20-8. |
|
|
板凳#
发布于:2004-04-08 15:05
这个问题我也碰到,用LINUX设备驱动程序(2nd)的例子也不行,该怎么办
|
|
地板#
发布于:2004-04-08 15:25
我也遇到的这个问题,希望哪位大侠帮帮忙。
不胜感激!! |
|
地下室#
发布于:2004-04-09 15:15
1.程序的头文件及预定义:
#MODULE #__KERNEL__ #include<linux/kernel.h> #include<linux/module.h> 2.编译命令有问题,应用: gcc -c filename.c -I /usr/src/linux/include 其中,linux为内核文件的符号连接,在我的机器上为linux-2.4.20-8. 最后用dmesg命令就可以看到显示信息。 另外,编译时会出现一个warning,说要什么授权之类的, 你在程序最后加上一句: MODULE_LICENSE("GPL"); 就可。 呵呵,我初学时也遇到这个问题,可是很多人都不屑回答,我费了老大劲才高明白的! |
|
5楼#
发布于:2004-04-10 15:29
谢谢楼上
|
|