본문 바로가기
코딩/기타 코딩 노트

Make 와 Makefile

by 디어솔 2024. 9. 7.
반응형

make와 Makefile은 소프트웨어 빌드 및 컴파일 과정을 자동화하는 데 사용된다.

Make

make는 GNU Make라는 프로그램으로, Makefile이라는 파일에 정의된 규칙을 읽고, 그에 따라 프로젝트를 빌드하는 역할을 한다. 여러 파일로 구성된 프로젝트에서 파일 간 의존성을 추적하고 효율적으로 빌드 과정을 관리하기 좋다.

  • 컴파일 과정 자동화: 여러 소스 파일을 순서에 맞게 컴파일 가능.
  • 의존성 관리: 소스 파일 간의 의존성을 확인하여, 변경된 파일만 다시 컴파일할 수 있도록 최적화.
  • 빌드 효율성: 필요 없는 재컴파일을 방지하여 빌드 시간 단축.

 

Makefile

Makefile은 프로젝트 빌드 방법을 정의한 파일이다. 이 파일에는 파일 간의 의존성, 빌드 명령어, 빌드 과정에서 실행할 규칙이 포함되어 있다.구성 요소는 아래와 같다.

  1. 타겟(Target): 컴파일된 출력 파일로, 보통 실행 파일이나 라이브러리 파일이다.
  2. 의존성(Dependency): 특정 타겟이 컴파일되기 전에 존재해야 하는 파일들. 예를 들어, .o 파일을 생성하기 위해 필요한 .cpp 파일 등이 있다.
  3. 명령어(Command): 타겟을 빌드하기 위한 실제 명령어로, 주로 컴파일러 명령이다.

 

아래는 메이크파일의 샘플이다.

hello_world: main.o print.o
	g++ -o hello_world main.o print.o
main.o: main.cpp
	g++ -c main.cpp
print.o: print.cpp
	g++ -c print.cpp
clean:
	rm hello main.o print.o

 

주요 명령어

  • make: 기본 타겟을 빌드합니다.
  • make clean: clean 타겟을 실행하여 임시 파일을 삭제합니다.
  • make [타겟]: 지정된 타겟을 빌드합니다.

댓글