2013-07-03 2 views
0

make 파일을 Makefile에서 아래 줄을 추가하여 실행했습니다. 내 .c 파일에서리눅스 커널 모듈 컴파일, makefile의 KBUILD_CFLAGS가 작동하지 않습니다.

KBUILD_CFLAGS += -DXFLAGS 

나는이 :

#ifdef XFLAGS 
printk(...); 
#endif 

만들기 컴파일이 성공하지만, 내가 /var/log/syslog 같은 로그 파일에 메시지를 볼 수 없습니다입니다. 이 문제의 원인을 알고 싶습니다. (플래그를 설정할 수 없음) printk 내부에는 아무런 문제가 없습니다. 내가 언급 한대로 #ifdef 및 printk 잘 작동합니다.

답변

1

메이크 파일에 새로운 변수 할당을 추가하면 아무 일도 일어나지 않습니다. 당신은 컴파일러 호출에서 변수를 사용해야합니다. makefile이나 컴파일 명령에 인쇄 규칙을 표시하지 않으므로 더 이상 말할 수 없습니다.

+0

감사합니다. 나는 그것에 익숙하지 않다. 무슨 뜻인지 더 설명해 주시겠습니까? 다른 곳에서는'KBUILD_CFLAGS'를 사용하지 않았습니다. 도와 주셔서 정말 고맙습니다. – smo

+0

이것은 정말로 Linux 커널 빌드 환경에 관한 질문입니다. make 또는 컴파일러와 관련이 없습니다. Unix & Linux 사이트에 질문하거나 질문에 태그를 수정하는 것이 더 많은 행운을 가져다 줄 것입니다. 그러나 https://www.kernel.org/doc/Documentation/kbuild/makefiles.txt에서 보면 모듈을 작성하는지 아닌지에 따라 달라지는 것 같습니다. 수정에 대한 세부 사항을 잘 모르겠습니다. 리눅스 커널은 이와 같은 플래그를 추가 할 수 있으므로 도움을 줄 수는 없습니다. – MadScientist