모듈형 Makefile 작성하기

CBeginner
지금 연습하기

소개

이번 챌린지에서는 간단한 C 프로그램을 컴파일하기 위한 기초적인 Makefile 작성 방법을 학습합니다. Makefile 이 어떻게 빌드 과정을 자동화하고 여러 소스 파일을 효율적으로 관리하는지 이해하게 될 것입니다.

이 콘텐츠는 챌린지 형식으로 제공됩니다. 가이드에 따라 학습하는 일반 실습과 달리, 스스로의 힘으로 과제를 해결해야 합니다. 챌린지는 다소 난이도가 있을 수 있습니다. 해결이 어렵다면 Labby 와 상담하거나 모범 답안을 확인해 보세요. 통계에 따르면 이 과제는 입문 수준이며, 98%의 통과율과 95%의 긍정적인 평가를 기록하고 있습니다.

기본 Makefile 작성

이번 과제에서는 두 개의 소스 파일로 구성된 C 프로그램을 컴파일하는 Makefile 을 작성합니다. 프로그램은 hello.cutils.c로 나뉘어 있습니다. hello.c에는 콘솔에 메시지를 출력하는 메인 함수가 포함되어 있고, utils.c에는 메인 함수에서 호출하는 보조 함수가 정의되어 있습니다.

과제 내용

  • 프로그램을 컴파일하는 Makefile 생성
  • 두 소스 파일을 각각 컴파일하는 규칙 추가
  • 생성된 파일들을 삭제하는 clean 타겟 추가

요구 사항

  • ~/project 디렉토리에 제공된 소스 파일을 사용하세요.
  • Makefile 은 반드시 hello.cutils.c를 모두 컴파일해야 합니다.
  • 최종 실행 파일의 이름은 hello로 지정하세요.
  • clean 타겟을 포함해야 합니다.
  • 컴파일러는 GCC 를 사용하세요.

실행 예시

다음 명령어를 실행하여 프로그램을 컴파일합니다:

cd ~/project
make
gcc -c hello.c
gcc -c utils.c
gcc hello.o utils.o -o hello

컴파일된 프로그램을 실행합니다:

./hello

프로그램 출력 예시:

Hello, World!
Utility function called!

프로그램 실행 후에는 생성된 파일들을 정리하세요.

힌트

  • Makefile 에서 들여쓰기를 할 때는 반드시 탭 (TAB) 키를 사용해야 합니다.
  • 소스 파일을 오브젝트 파일로 컴파일할 때는 -c 플래그를 사용하세요.
  • 컴파일이 완료된 후 프로그램이 정상적으로 동작하는지 테스트하세요.
✨ 솔루션 확인 및 연습

요약

이 챌린지를 통해 Makefile 작성의 기초를 습득했습니다. 여러 소스 파일을 컴파일하고, 실행 파일을 생성하며, 빌드 결과물을 정리하는 간단한 Makefile 작성법을 배웠습니다. 이는 C 프로그래밍 프로젝트를 관리하는 데 있어 가장 핵심적인 기술입니다.