- 论坛徽章:
- 0
|
我现在在看Beginning Linux Programming(Linux程序设计第三版)这本书,目前看到第18章第一个程序,就是hello kernel,但是我按照书上写的编译方法进行编译报告没有找到头文件。我的编译环境是FC8,他要求编译时将头文件路径指向/usr/src/linux/include,但我发现我的系统中没有该目录,只是在/usr/src/kernels/`uname -a`/include下有符合要求的文件。但我将路径指向该路径后编译会出许多错误,我想问一下如何编译该文件。我用albcamus在交大Linux技术沙龙时使用的hello kernel编译就没有问题。
附上文件:
hello.c:
#include <linux/module.h>
#if defined(CONFIG_SMP)
#define __SMP__
#endif
#if defined(CONFIG_MODVERSIONS)
#define MODVERSIONS
#include <linux/modversions.h>
#endif
#include <linux/kernel.h>
int init_module(void)
{
printk(KERN_DEBUG "Hello, kernel!\n");
return 0;
}
void cleanup_module(void)
{
printk(KERN_DEBUG "Good-bye, kernel!\n");
}
Makefile:
# standards
INCLUDE = /usr/src/linux/include
CC = gcc
CFLAGS = -D__KERNEL__ -I$(INCLUDE) -DMODULE -Wall -O2
TARGET = hello
SRC = hello.c
all: $(TARGET).o
clean:
rm -f *.o *~ core |
|