커널 컴파일시 "unresolved..."라는 메시지가 뜹니다.
글쓴이: midasyoo / 작성시간: 목, 2003/09/25 - 8:41오후
초보라서 고수님들께 여쭤봅니다.
일반 리눅스 PC상에서 hello_world.c라는 파일을 만들어서 Makefile을 실행시켰더니 아래와 같은 메시지가 뜹니다.
- 아래 -
hello_world.c 파일 내용입니다.
/*
* Hello, world module
*/
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/init.h>
/* init_module function */
static int module_begin(void)
{
printk("Hello, world\n");
return 0;
}
/* cleanup_module function */
static void module_end(void)
{
printk("Goodbye cruel world\n");
}
EXPORT_NO_SYMBOLS;
module_init (module_begin);
module_exit (module_end);
Makefile의 내용입니다.
# Makefile for a basic kernel module
CROSS_COMPILE=gcc
# Modify this statement to your kernel directory
INCLUDEDIR = /include
MODCFLAGS := -Wall -o2 -DMODULE -D__KERNEL__ -DLINUX -I$(INCLUDEDIR)
hello_word.o: hello_world.c
$(CROSS_COMPILE) $(MODCFLAGS) -c hello_world.c
컴파일 명령은 아래와 같이 했습니다. 그리고, 다음과 같이 메시지가 뜹니다.
[root@linux kernel]# insmod hello_world.o
hello_world.o: unresolved symbol printk
hello_world.o:
Hint: You are trying to load a module without a GPL compatible license
and it has unresolved symbols. Contact the module supplier for
assistance, only they can help you.
무엇이 문제인지 모르겠습니다.
고수님들의 지도 부탁드립니다.
Forums:


댓글 달기