간단한 디바이스 드라이버 모듈인데... 컴파일 에러발생

linux777의 이미지

간단한 디바이스 드라이버 모듈인데...
컴파일하니 kernel.h module.h 파일이 없다고 에러가나고,
printk 에서도 에러가 나네요...

무었때문에 에러가 나나요?

저는 CYGWIN환경에서 /usr/local/test에 Makefile, hello.c가 있고
리눅스 2.4.18은 /usr/local/linux 에 있읍니다.

/*
   Hello, World Module Program
*/

#include <linux/kernel.h>
#include <linux/module.h>

#ifdef CONFIG_MODVERSIONS
#define MODVERSIONS
#include <linux/modversions.h>
#endif

int init_module(void)
{
    printk("<1>Hello, World\n");

    return 0;
}

void cleanup_module(void)
{
    printk("<1>Goodbye\n");
}

Makefile은 아래와 같은데...

CC = gcc
CFLAGS = -D__KERNEL__ -DMODULE -O -Wall

OBJS = hello.o

all : $(OBJS)

clean : 
	rm -f *.o *~

MasterQ의 이미지

한번 Makefile에 kernel header의 include path

한번 Makefile에 kernel header의 include path를 넣어보세요.

valor의 이미지

이게...

이게 더 맞을 것 같습니다만...

cd /usr/include

ln -s /usr/local/linux/include/linux linux
ln -s /usr/local/linux/include/asm asm

그나저나 cygwin 환경에서 컴파일을 하신다면 크로스 컴파일러를 사용하시는 거겠지요?

같은 CPU지만 OS가 다르니까 컴파일러도 달라야 할 것 같은데...

댓글 보기 옵션

원하시는 댓글 전시 방법을 선택한 다음 "설정 저장"을 누르셔서 적용하십시오.