인프런 커뮤니티 질문&답변

김세영님의 프로필 이미지

작성한 질문수

한국에서 제일 쉬운 리눅스 커널 강의

실수 방지 드라이버 만들기-1

재 빌드시 변경파일만 반영하지 않고 처음부터 빌드 됩니다.

해결된 질문

24.10.23 15:20 작성

·

48

0

실수 방지 드라이버 만들기에서 debugfs 파일을 추가하고 Makefile 수정 후 build.sh 스크립트로 재빌드 하였는데, 처음부터 다시 빌드가 되어서 시간이 너무 오래걸리는 것 같아 질문 드립니다.

강의 영상에서는 변경 부분만 빌드 되는것으로 보입니다. 빌드 환경 점검 방법이 있을까요?

감사합니다.

 

답변 1

0

ojtube5님의 프로필 이미지
ojtube5
지식공유자

2024. 10. 23. 15:58

우선 기본적으로 바뀐 부분만 빌드하는게 기본적인 동작 방식이에요.

이렇게 되게 하는데 별다른 조치는 필요하지 않아요.

그런데 전체 빌드를 다시 한다는 거는 원래 빌드했던
1. 디렉토리가 바뀌었다 던가, (이런 경우에 기존에 빌드한 내용들을 찾을 수 없어서 처음 부터 다시 합니다.)
2. 컴파일 하는 옵션이 바뀌었다 던가, (예를 들어 기존에는 그냥 빌드 했는데, 다음에 할때는 전처리기를 만들어 달라고 옵션을 추가 했다던가 하면 전체 다 빌드를 다시 합니다.)

하는 등등의 일이 일어났다고 보면 됩니다.

개념을 간단하게 정리해드리면, 다시 빌드 한다는 것은, 기존에 빌드한 정보를 참조 할 수 없는 어떠한 상황 또는 다시 빌드해야만 하는 어떤 일이 일어 났다는 것입니다.


전체 빌드가 다시 일어 날 수 있는 경우에 수는 추가로 이런 경우가 있습니다..

  • 커널 설정(config 파일) 수정 시, 설정 변경에 따라 전체 빌드가 필요할 수 있음.

  • 컴파일러 또는 툴체인 변경 시, 일관성을 위해 전체 빌드가 필요함.

  • make clean 또는 make mrproper 후, 오브젝트 파일 삭제로 전체 빌드가 요구됨.

  • 커널 코드 또는 헤더 파일의 근본적인 변경 시, 전체 빌드 필요.

  • 아키텍처 변경 시, 새로운 아키텍처에 맞게 전체 빌드 필요.

  • 외부 모듈 추가 시, 종속성에 따라 전체 빌드가 요구될 수 있음.