You cannot see this page without javascript.

make - 06 make 규칙

Programing 조회 수 248 추천 수 0 2017.02.22 17:21:50

make는 파일을 작성할 때 컴파일에 필요한 각 처리단계와 의존성을 분명히 지정하여 make를 처리하는 것을 명시적 규칙(explicit rules)이라 한다. 그리나 이에 반해 make가 미리 정의된 규칙을 이용해 make 파일을 단순화시키는 규칙을 암시적 규칙(inference rules)이라 한다.

 

다음은 암시적 규칙의 예를 살펴본다.

 

makefile  < makefile 작성>
1: OBJ=main_test.o func1.o func2.o
2: test : $(OBJ)
3:    cc -o  $@ $^
4: clean:
5:    rm $(OBJ)

 


make를 실행하여 본다.

 

$  make clean
        rm main_test.o func1.o func2.o

$  touch *
$  make
        cc -O -c main_test.c
        cc -O -c func1.c
        cc -O -c func2.c
        cc -o  test


대상 test를 생성하기 위해 make는 대상이 의존하는 파일들을 살피게 된다. 그러나 대상이 의존하는 main_test.o, func1.o, func2.o 가 존재하지 않기 때문에 make는 다시 main_test.o, func1.o, func2.o가 대상으로 있는 곳을 찾으려고 할 것이다. 그러나 make가 main_test.o, func1.o, func2.o가 있는 대상을 찾지 못하면 make의 동작이 중단될 것 같지만 위에서 보는 보와 같이 실제로 오류 없이 실행되는 것을 알 수 있다.

 

이는 make가 암시적 규칙에 따라 오브젝트 파일 main_test.o, func1.o, func2.o를 생성하기 위해, 이들이 의존하는 파일을 찾고 컴파일러 호출까지 수행하게 한다. 이를 make의 암시적 규칙이라 한다.

이러한 암시적 규칙은 다음과 같이 –p 옵션을 통하여 그 내용을 확인할 수 있다.

 

$  make -p
Macros:
OBJ = main_test.o func1.o func2.o
SHELL = /usr/bin/sh
…….
clean:
 commands:
        rm $(OBJ)
func2.o
func1.o
main_test.o
test:  (MAIN NAME)
 depends on: main_test.o  func1.o  func2.o
 commands:
        cc -o  $@ $^   …

엮인글 :
List of Articles
번호 제목 글쓴이 날짜sort 조회 수
369 Windows7 OEM을 활용하여 클린설치 file [11] LynX 2010-11-06 765
368 Windows7 에서 시스템을 백업/복원하는 가장 쉬운 방법!! file LynX 2010-11-07 334
367 탐색기 메뉴에 '명령 프롬프트 열기'와 '메모장으로 열기' 추가하기 file [14] LynX 2010-11-08 591
366 인터넷 익스플로러 리플레쉬 file LynX 2011-05-02 286
365 활성 네트워크 중복으로 인한 인터넷 연결 안되는 문제 file [12] LynX 2011-05-26 971
364 32bit Driver을 64bi로 설치하기 [8] LynX 2011-06-21 325
363 설치파일(inf)에 대한 이해 [7] LynX 2011-06-22 598
362 inf 설치시 경고창 안뜨게 하기 file [10] LynX 2011-06-22 430
361 로우 포맷(Low level format, 저수준 포맷) 하기 file [11] LynX 2011-07-06 722
360 Win XP Crack file [8] LynX 2011-10-31 269
359 윈도우7 메모리 인식 문재 file [13] LynX 2011-11-30 530
358 RoundCube 첨부 용량 변경 / 한글 수정 [10] LynX 2012-01-31 836
357 윈도우7 알수없는장치 file [8] LynX 2012-03-13 270
356 디지털 서명 file [1] LynX 2012-03-15 445
355 아레한글 사용시 출력물에 음영이 나타나는 현상. file [11] LynX 2012-03-29 1154
354 Xyview DVR서버 연결 [8] LynX 2012-04-19 295
353 HP Officejet 6500A (Plus) 호환 드라이버 [8] LynX 2012-05-16 294
352 IIS에 FastCgi모듈 활성화 시키기 file [12] LynX 2012-11-21 1283
351 윈도우 2008서버에 XE 설치 절차 [9] LynX 2012-11-22 230
350 Windows Server 2012 설치 file LynX 2012-11-23 477

XE Login