MODULE_LICENSE( "GPL" ) 에러좀 봐주세요.
글쓴이: 은영신랑 / 작성시간: 목, 2003/08/14 - 10:05오전
좀 오래된 ISA 방식의 카드를 하나 구입했는데요,
제공된 리눅스 드라이버를 설치하는데요,
마지막에
/* set driver license */ MODULE_LICENSE( "GPL" ); 이 있고요, make를 실행하면 parse error before string constant warning: type default to 'int' in declaration of 'MODULE_LICENSE' warning: function declaration isn't a prototype warning: data definition has no type or storage class
왜 이런 에러가 나는거지요? 그리고 이 항목을 주석처리하니깐 에러가
안나기는 합니다. ( Redhat 7.1 kernel 2.4.2-2입니다.)
Forums:
그냥 주석처리 하셔도 될듯..
지금 잠깐 찾아봤는데..
kernel 2.4.2 에서는 MODULE_LICENSE 매크로가 정의되어 있지 않는 것 같습니다.
정확히 언제부터 생긴지는 모르겠지만
kernel 2.4.20 에는 정의되어 있네요.. <include/linux/module.h>
제가 알기로는 단순히 모듈에 대한 라이센스 정보만을 기록하는 매크로라
주석처리 하고 사용하셔도 무방할 듯 합니다.
kernel 2.4.20 에서도
단지 insmod 시에 경고 메시지만 출력되고
제대로 동작할 것 같네요..
아마도 찾아보면 이 헤드 파일은 있습니다.find || locate
아마도 찾아보면 이 헤드 파일은 있습니다.
find || locate 로 한 번 찾아 보시길...
<어떠한 역경에도 굴하지 않는 '하양 지훈'>
#include <com.h> <C2H5OH.h> <woman.h>
do { if (com) hacking(); if (money) drinking(); if (women) loving(); } while (1);
정확히 Kernel version 2.4.10부터 MODULE_LICEN
정확히 Kernel version 2.4.10부터 MODULE_LICENSE 매크로가 정의되었기 때문에 kernel 2.4.2-2에서는 error 메세지가 출력됩니다.
pastime님께서 말씀하신 것처럼, 주석처리하신 후 사용하셔도 무방할 듯 싶습니다.
참고로, 이 MODULE_LICENSE는 단순히 그 MODULE의 License를 명시하는 역할 외에 동일한 라이센스를 갖고 있는 MODULE에만 Kernel symbol이 사용되도록 할 수 있는 기능도 제공하고 있습니다. 하지만 이 매크로에 대한 논란도 많은 것으로 알고 있습니다.
댓글 달기