smart라벨에서 gcc --save-temps -o main main.c 를 실행시키고 있으며
crean라벨에서 smart에서 생성한 main실행파일과 전처리 파일들을 강제삭제하고있다.
- rm main.i 를 할 시에는 main.i를 정말로 지우겠냐는 경고가 뜨지만
- rm -rf는 강제삭제이기 때문에 경고를 띄우지않고 삭제하기 때문에 주의해야한다.
처음은 make명령만 줬기때문에 makefile의 첫번째 라벨 smart만 실행된 결과이고
make crean으로 특정 라벨(crean)을 실행시켜 줌으로써 smart에서 생성한 파일을 성공적으로 삭제시켰다.
- 각 라벨안에 @ls -al을 적으면 smart와 crean의 실행결과를 한눈에 확인할 수 있을 것이다.
처음에 make를 하면 rebuild를 실행시키고 crean -> build
build라벨로 들어가서 begin -> smart -> end를 실행시킨다.
- 실행하고있는 상황을 알고 싶을 때 @를 지우면 상황이 나온다.
|
make -> run을 실행하자 rebuild라벨로 들어가게 되며 rebuild라벨안의 명령을 전부 수행한 후 다음의
@ ./ $(TARGET) 즉 main을 실행한다.
- 맨밑의 실행화면을 보면 마지막에 100이 찍힌걸 알 수 있다. smart에서 main컴파일 후 위의 main.c소스에서 출력시킨 NUMBER가 출력된 값이다.
컴파일은 되는데 소스파일에 없으면 make파일에 있는 것
main.c에 보면 NUMBER라는 define은 없기 때문에 출력이 되는 것이 이상한데, 이런경우 define이 make파일에 존재한다.
그렇기 때문에 make파일을 읽을 줄 알아야 코드를 완벽하게 분석할 수 있다.
- make에서 NUMBER 50 을 difine했음.
'교육 > ATmega2560' 카테고리의 다른 글
ATmega2560 TimerCounter와 인터럽트 이용하여 7 Segment증가시키기 (0) | 2014.05.27 |
---|---|
ATmega2560 - 7 Segment연결 (0) | 2014.05.26 |
ATmega2560 / LED,LCD 연결과 작동 (0) | 2014.05.22 |
ATmega2560 셋팅과 LED (0) | 2014.05.21 |
2014.05.19 (0) | 2014.05.19 |