make 유틸리티

2021. 3. 22. 00:56 기타/C언어

GNU MAKE

참조문서: http://wiki.kldp.org/KoreanDoc/html/GNU-Make/GNU-Make.html

make는 파일 간의 종속관계를 파악하여 Makefile(기술파일)에 적힌 대로 컴파일러에 명령하여 SHELL명령이 순차적으로 실행

1. make의 장점

  • 단순 반복 작업을 자동화 해준다(일일이 gcc명령어를 안쳐도 됨)
  • 프로그램의 종속 구조를 빠르게 파악

2. makefile 구성

  • 목적파일(Target) : 명령어가 수행되어 나온 결과를 저장할 파일
  • 의존성(Dependency) : 목적파일을 만들기 위해 필요한 재료
  • 명령어(Command) : 실행 되어야 할 명령어들
  • 매크로(macro) : 중복되는 이름들을 특정 단어로 치환(C의 #define)으로 코드를 단순화

3. makefile 작성

주로 파일명: Makefile

목표파일(target) : 목표파일을 만드는데 필요한 구성요소들(의존성있는 것들) 목표를 달성하기 위한 명령1 목표를 달성하기 위한 명령2

  • 매크로를 참조 할 때는 소괄호나 중괄호 둘러싸고 앞에 ‘$’를 붙인다.
  • 탭으로 시작해서는 안되고 , :,=,#,”” 등은 매크로 이름에 사용할 수 없다.
  • 매크로는 반드시 치환될 위치보다 먼저 정의 되어야 한다.

자주쓰이는 이름

  • CC : 사용할 컴파일러
  • CFLAGS : 컴파일에 필요한 각종 옵션을 추가
  • LDFLAGS : 라이브러리에 관한 설정
  • OBJECTS : 목적파일명
  • TARGET : 링크 후 생성될 실행파일명
  • LIB : 라이브러리 위치 경로

4. 명령어

  • make -f 파일명 : Makefile의 파일명이나 확장자가 다를경우 이런식으로 정확하게 지정해준다. 즉 반드시 파일명이 Makefile일 필요는 없다.
  • make = make all : all에 정의된 명령어들을 실행
  • make clean : clean에 정의된 명령어들을 실행



출처: https://sjh836.tistory.com/62?category=680969 [빨간색코딩]