当前位置: 技术问答>linux和unix
LDD2中hello world的问题
来源: 互联网 发布时间:2016-01-07
本文导语: 下面是hello.c和对应的Makefile:(kernel2.4) hello.c -------------------------------------------------- #include #include int init_module(void) { printk("Hello,World!n"); return 0; } void cleanup_module(void) { printk("Goodbye cruel...
下面是hello.c和对应的Makefile:(kernel2.4)
hello.c
--------------------------------------------------
#include
#include
int init_module(void)
{
printk("Hello,World!n");
return 0;
}
void cleanup_module(void)
{
printk("Goodbye cruel world n");
}
MODULE_LICENSE("GPL");
---------------------------------------------------
Makefile
---------------------------------------------------
CC=gcc
KERNELDIR=/usr/src/linux-$(shell uname -r)
MODCFLAGS:=-Wall -DMODULE -D__KERNEL__ -DLINUX -I $(KERNELDIR)/include
hello.o:hello.c /usr/include/linux/version.h
$(CC) $(MODCFLAGS) -c hello.c
clean:
rm -f *.o
----------------------------------------------------------
希望大家帮忙改一下Makefile,来适应下面的要求:
修改后目录结构如下(其中h和hello是同一级的目录):
----------------------
/h/hello.h
/hello/hello.c
/Makefile
----------------------
现在hello.c需要包含hello.h这个文件,怎么改Makefile?
hello.c
--------------------------------------------------
#include
#include
int init_module(void)
{
printk("Hello,World!n");
return 0;
}
void cleanup_module(void)
{
printk("Goodbye cruel world n");
}
MODULE_LICENSE("GPL");
---------------------------------------------------
Makefile
---------------------------------------------------
CC=gcc
KERNELDIR=/usr/src/linux-$(shell uname -r)
MODCFLAGS:=-Wall -DMODULE -D__KERNEL__ -DLINUX -I $(KERNELDIR)/include
hello.o:hello.c /usr/include/linux/version.h
$(CC) $(MODCFLAGS) -c hello.c
clean:
rm -f *.o
----------------------------------------------------------
希望大家帮忙改一下Makefile,来适应下面的要求:
修改后目录结构如下(其中h和hello是同一级的目录):
----------------------
/h/hello.h
/hello/hello.c
/Makefile
----------------------
现在hello.c需要包含hello.h这个文件,怎么改Makefile?
|
如果只是hello.c中用到,那应该只要在$(CC)...中加入 -Ihello.h的路径 即可。
|
建议到网上找Makefile的介绍系统的看看,在Linux下开发,不熟悉Makefile,两个字--不行