GNU Make 입문 1/2

3670 단어 CMakefile

소개



신졸 SE 견습생(투고 당시)의 푸르푸에입니다.
전혀 다른 일에 할당되었으므로, 잊지 말고 문자에 일어나려고 하는 곳입니다.

문턱을 낮추려고 한 결과, 추상 표현도 산견합니다. 미리 양해 바랍니다.
이 엔트리가 나와 같은 초보자 C계 프로그래머씨의 엔트리가 되면 기쁜 한입니다.

환경



Ubuntu Server 18.04.2 LTS
GNU Make 4.1

전체 흐름



이하의 장 세워서 진행해 갑니다.
또한 두 개의 항목으로 나눌 예정입니다. (언젠가 게시)
이 항목에서는 3장까지 다룹니다.
  • make 란?
  • 초절 쉽게 makefile
  • 상당히 간단하게 makefile 여기까지
  • C 파일 컴파일
  • 4에서 만든 makefile의 개선

  • make란?



    작업을 자동화하는 도구입니다.
    명령 (echo 라든지 gcc 라든지)을 자동화하는 프로그램을 짜넣은 makefile 를 작성하면, 여러가지 조작이 커멘드 하나로 폰 해 되어 버립니다.

    기쁜 일


  • 단순 작업 자동화
  • 방대한 소스 파일을 단번에 실행
  • 수정된 파일만 차이 컴파일
  • 테스트에 필요

  • 등등.

    초절 쉽게 makefile



    명령줄에 문자열을 표시하는 "echo"명령을 자동화합니다.
    초절 간단합니다.

    1. makefile 만들기



    편집기에서 "makefile"이라는 파일을 만듭니다. 1
    Atom의 경우 Ctrl + N → Ctrl + Shift + L로 makefile을 선택합니다.

    2. 프로그램 작성



    makefile
    all:
      echo Hello world!
    

    3. 실행



    콘솔에서 'make' 명령을 치십시오.

    makefile
    $ make
    echo Hello World!
    Hello World!
    

    표시되었습니다.

    상당히 쉽게 makefile



    디렉토리 청소를 자동화해 봅니다.
    이런 텍스트 파일이 있다고 하자.



    폴더에는 rm.mk라는 makefile과 C 파일과 텍스트 파일이 두 개 있습니다.

    여기를 make 명령으로



    이런!
    rm.mk와 같은 디렉토리의 텍스트 파일을 청소하는 것이 목표입니다.

    1. makefile 만들기



    텍스트 파일을 rm 하는 makefile 를 작성하기 때문에, 「rm.mk」라고 했습니다.

    2. 프로그램 작성



    rm.mk
    clean:; rm -f *.txt
    

    여기에서 사용되는 "*"는 접미사를 제외한 대상의 이름을 지정하는 자동 변수입니다.
    *.txt (은)는, 임의의 텍스트 파일을 대상으로 한다고 하는 의미가 됩니다.

    접미사 : 문자열이나 데이터 열의 끝에 추가되며 어떤 의미를 나타내는 요소를 나타냅니다. ( IT 용어 사전 부터)

    3. 실행



    이번에는 makefile 이라는 파일 이름이 아니라 "rm.mk"로 했으므로 다음과 같이 실행합니다.

    rm.mk
    $ make -f rm.mk
    rm -f *.txt
    

    make 명령의 -f 옵션에 의해, 그 후에 지정한 파일 (rm.mk)을 makefile 로서 취급할 수가 있습니다.



    텍스트 파일만 모두 삭제되었습니다.
    단순 작업을 자동화할 수 있다고 생각합니다.

    사이고에게



    다음 번에는 번거로운 C 파일 컴파일을 자동화합니다.
    make 라고 해도, 되는 것은 앞으로군요.

    참고문헌


  • GNU Make 제 3 판 - Robert Mecklenburg, 야부키 도로 감역, 기쿠치 아키라 번역



  • makefile 또는 Makefile은 기본적으로 호출됩니다. 확장자가 ".mk"인 makefile 은 make -f ~~.mk 로 호출합니다.

    좋은 웹페이지 즐겨찾기