日期:2014-05-16  浏览次数:20614 次

make后出现的错误竟然与‘h’字符有关
hello.c文件:

#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
MODULE_LICENSE("GPL");

static int _init hello_init(void)
{
    printk("hello,it works!/n");
}

static void _exit hello_exit(void)
{
    printk("bye/n");
}

module_init(hello_init);
module_exit(hello_exit);

Makefile文件:

obj-m:=hello.o

LINUX_PATH:=/usr/src/linux-3.2.50

all:
        make -C $(LINUX_PATH) M=/home/Modules modules
clean:
        make -C $(LINUX_PATH) M=/home/Modules clean


make后出现的错误:


发现程序中遇到 'h' 字符就识别不出来,这是怎么回事?
makefile make

------解决方案--------------------
dos2unix hello.c后再试试
------解决方案--------------------
static int _init hello_init(void)

红色的init前面需要两个下划线吧,

exit同理
------解决方案--------------------
可以百度一下啊,不知道下面的有没有用
http://www.360doc.com/content/12/0215/12/6828497_186780520.shtml
http://blog.tianya.cn/blogger/post_show.asp?BlogID=420361&PostID=7778597
------解决方案--------------------
Makefile文件中LINUX_PATH:=/usr/src/linux-3.2.50表示你当前KO模块依赖的内核版本是3.2.50,请问你当前系统的/usr/src/目录下还有其它版本的linux目录吗?先确定下你当前系统运行的内核版本是否是3.2.50