linux下模块的编译,写好源文件了,最简单的一个hello的C程序,怎么写makefile文件,参照好多资料,都不行 50
源文件:hello.c#include<linux/init.h>#include<linux/module.h>MODULE_LICENSE("DualBSD/GPL"...
源文件:hello.c
#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE("Dual BSD/GPL");
static int hello_init(void)
{
printk(KERN_ALERT "hello,world\n");
return 0;
}
static void hello_exit(void)
{
printk(KERN_ALERT "goodbye, cruel world\n");
}
module_init(hello_init);
module_exit(hello_exit);
网上参考的makefile:
obj-m := modules.o
modules-objs:= hello.o
KDIR := /lib/modules/`uname -r`/build
PWD := $(shell pwd)
default:
make -C $(KDIR) M=$(PWD) modules
clean:
rm -rf **.o .* .cmd *.ko *.mod.c .tmp_versions
命令行执行:make,出现:make:没什么可以做的为default
怎么解决啊,大家帮帮忙
linux/init.h
linux/module.h
这两个头文件在哪 展开
#include <linux/init.h>
#include <linux/module.h>
MODULE_LICENSE("Dual BSD/GPL");
static int hello_init(void)
{
printk(KERN_ALERT "hello,world\n");
return 0;
}
static void hello_exit(void)
{
printk(KERN_ALERT "goodbye, cruel world\n");
}
module_init(hello_init);
module_exit(hello_exit);
网上参考的makefile:
obj-m := modules.o
modules-objs:= hello.o
KDIR := /lib/modules/`uname -r`/build
PWD := $(shell pwd)
default:
make -C $(KDIR) M=$(PWD) modules
clean:
rm -rf **.o .* .cmd *.ko *.mod.c .tmp_versions
命令行执行:make,出现:make:没什么可以做的为default
怎么解决啊,大家帮帮忙
linux/init.h
linux/module.h
这两个头文件在哪 展开
展开全部
Makefile的写法,注意KDIR的根据你的源码目录更改,我的是ubuntu11.04的源码目录。
obj-m :=hello.o
KDIR := /usr/src/linux-headers-2.6.38-8-generic/
all:
make -C $(KDIR) M=$(shell pwd) modules
clean:
make -C $(KDIR) M=$(shell pwd) clean
obj-m :=hello.o
KDIR := /usr/src/linux-headers-2.6.38-8-generic/
all:
make -C $(KDIR) M=$(shell pwd) modules
clean:
make -C $(KDIR) M=$(shell pwd) clean
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我是gcc ./hello.c -o hello
然后./hello
你试试
然后./hello
你试试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你写的不对,请参考这个网站http://www.chinaunix.net/jh/23/408225.html,如果看了还不会,可以私聊我
例子:
main.o : hello.c init.h module.h
gcc -c hello.c
例子:
main.o : hello.c init.h module.h
gcc -c hello.c
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先g++ -c hello.c
g++ -o hello.o
./hello
教你个最简单的,直接在指令的地方
make hello
再 ./hello
就好了。
g++ -o hello.o
./hello
教你个最简单的,直接在指令的地方
make hello
再 ./hello
就好了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询