[C] Makefile 튜토리얼

EunJin
2 min readMar 14, 2021

--

Makefile 이란?

파일 간의 종속관계를 파악하고 Makefile(기술 파일)에 적힌 대로 SHELL 명령이 순차적으로 실행되게 해주는 명령어입니다.

Makefile 작성법

Makefile에서 반복되는 구조인 Rule block의 구조는 다음과 같습니다.

<Target>: <Dependencies>
<Recipe>
  • Target: 빌드 대상 이름. 통상 이 Rule에서 최종적으로 생성해내는 파일명을 써 줍니다.
  • Dependencies: 빌드 대상이 의존하는 Target이나 파일 목록. 여기에 나열된 대상들을 먼저 만들고 빌드 대상을 생성합니다.
  • Recipe: 빌드 대상을 생성하는 명령. 여러 줄로 작성할 수 있으며, 각 줄 시작에 반드시 Tab 문자로 된 Indent가 있어야 합니다.

Make에서는 자주 사용되는 빌드 규칙들은 내장을 해서 굳이 기술하지 않아도 자동으로 처리해 줍니다. 소스 파일(.c)을 컴파일해서 Object 파일(.o)로 만들어 주는 규칙이 여기에 해당합니다. 즉, Makefile에 다음 두 줄만 써도 app.out을 빌드 할 수 있습니다.

Makefile 사용 예시

계산기 프로그램과 구구단 프로그램 둘 다 컴파일 할 수 있도록 Makefile을 작성했습니다. 계산기 프로그램은 정적 라이브러리를 사용했습니다.

위처럼 make의 기본은 계산기 프로그램으로 컴파일이 되고, make gugudan으로 옵션을 변경하면 구구단 프로그램이 컴파일 됩니다.

아래는 실행 결과입니다.

--

--

EunJin
EunJin

No responses yet