18.2. 예제: Makefile을 사용하여 C 프로그램 빌드
아래 예제의 단계에 따라 Makefile을 사용하여 샘플 C 프로그램을 빌드합니다.
사전 요구 사항
절차
hellomake
디렉터리를 생성하고 이 디렉터리로 변경합니다.mkdir hellomake cd hellomake
$ mkdir hellomake $ cd hellomake
Copy to Clipboard Copied! 다음 콘텐츠를 사용하여
hello.c
파일을 생성합니다.#include <stdio.h> int main(int argc, char *argv[]) { printf("Hello, World!\n"); return 0; }
#include <stdio.h> int main(int argc, char *argv[]) { printf("Hello, World!\n"); return 0; }
Copy to Clipboard Copied! 다음 콘텐츠를 사용하여
Makefile
파일을 생성합니다.CC=gcc CFLAGS=-c -Wall SOURCE=hello.c OBJ=$(SOURCE:.c=.o) EXE=hello all: $(SOURCE) $(EXE) $(EXE): $(OBJ) $(CC) $(OBJ) -o $@ %.o: %.c $(CC) $(CFLAGS) $< -o $@ clean: rm -rf $(OBJ) $(EXE)
CC=gcc CFLAGS=-c -Wall SOURCE=hello.c OBJ=$(SOURCE:.c=.o) EXE=hello all: $(SOURCE) $(EXE) $(EXE): $(OBJ) $(CC) $(OBJ) -o $@ %.o: %.c $(CC) $(CFLAGS) $< -o $@ clean: rm -rf $(OBJ) $(EXE)
Copy to Clipboard Copied! 경고Makefile 레시피 행은 탭 문자로 시작해야 합니다. 브라우저에서 위의 텍스트를 복사할 때 대신 공백을 붙여넣을 수 있습니다. 이 변경 사항을 수동으로 수정합니다.
make
: 실행make
$ make gcc -c -Wall hello.c -o hello.o gcc hello.o -o hello
Copy to Clipboard Copied! 그러면 실행 가능한 파일
hello
가 생성됩니다.실행 파일
hello
:./hello
$ ./hello Hello, World!
Copy to Clipboard Copied! Makefile target
clean
을 실행하여 생성된 파일을 제거합니다.make clean
$ make clean rm -rf hello.o hello
Copy to Clipboard Copied!