모듈 컴파일 질문입니다.(컴파일 에러)
글쓴이: mtg1 / 작성시간: 금, 2011/03/25 - 12:28오전
학교에서 예제로 주어진 get_ip.c 코드입니다.
static int __init getip_init(void) { struct ifreq ifr; struct in_device *in_dev; struct in_ifaddr **ifap = NULL; struct in_ifaddr *ifa = NULL; struct net_device *dev; printf("get ip module init\n"); strcpy(ifr.ifr_name, "eth0"); rtnl_lock(); dev = __dev_get_by_name(&init_net, ifr.ifr_name); if((in_dev = __in_dev_get_rtnl(dev))!=NULL){ if(!ifa){ for(ifap=&in_deb->ifa_list; (ifa = *ifap)!=NULL; ifap = &ifa->ifa_next) if(!strcmp(ifr.ifr_name,ifa->label)) break; } } rtnl_unlock(); printk("%x\n", ifa->ifa_local); return 0; }
컴파일 할 때 에러가 납니다; 구체적으로는
/home/ath/ip/get_ip.c:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘getip_init’
이런 에러가 발생하는데요, makefile을 이용해서 커널 컴파일을 하는 것입니다.
makefile 내용은
KDIR :=/lib/modules/$(shell uname -r)/build PWD :=$(shell pwd) obj-m += get_ip.o default: $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules clean: rm -rf *.o rm -rf *.mod.* rm -rf *.ko
에러가 무슨 내용인지, 어떤 식으로 수정해야 하는지 알려주세요;
Forums:
include하고나서 컴파일 해보니
에러가 한가득...이네요.
포인터가 잘못되었다고 나오는 것 같기도 하고..
정의되지 않은 변수도 있다고 하고..
...예제로 올라온 소스인데 실제로 해보니..;
...하아;
댓글 달기