728x90
반응형
What is make
리눅스 환경에서 소스 관리를 위해 사용하는 유닉스, 리눅스 계열 운영 체제에서 주로 사용되는 프로그램 빌드 도구이다.
여러 파일들끼리의 의존성과 각 파일에 필요한 명령을 정의함으로써 프로그램을 컴파일 할 수 있으며 최종 프로그램을 만들 수 있는 과정을 서술할 수 있는 표준적인 문법을 가지고 있다.
Makefile로 make가 해석하여 프로그램 빌드를 수행한다.
make 는 소스의 일부가 변경된 경우에는 변경된 부분만 다시 컴파일하고 링크하여 컴파일 시간을 단축한다.
- Makefile 은 vim 을 이용해서 생성한다.
Makefile 로 이름을 만들 경우 리눅스에서 자동으로 관리를 해준다. - Makefile 작성
- target:
실행파일, Object 파일, 라이브러리 등 목적 규칙을 정의한다. 3의 실행결과로 만들어지는 파일을 의미한다.
생성 파일이나 install 같은 기능적 블록도 사용 가능하다. - Dependency, Prerequisites:
Target을 만들 때, 의존성(연관관계)를 규정한다.
의존성을 규정한 파일들 중 수정된 파일이 있으면 Target을 다시 만든다. - Recipe:
Target을 만들기 위한 실행 파일이다. 해당 실행규칙에 따라 Target이 생성된다. 해당 부분에는 리눅스 명령어를 이용해서 작성한다. 명령 구문은 여러개가 올 수 있다. 작성 시 주의사항은 구분하기 위해서 TAB키를 이용해서 들여쓰기를 해야한다는 점이다. TAB키 말고 다른 키로 구분을 할 경우 make 시 정상적으로 수행되지 않는다. - Macro:
반복적인 구문은 매크로를 이용해서 효율적으로 작성할 수 있다. C언어에서 #define 과 같은 경우이다. 매크로를 사용할 경우 $(MACRO_NAME)을 이용하면 된다. 사용할려는 구문보다 앞서서 정의되어야 한다. - Dummy Target:
더미타겟은 의존성 파일들을 정의하지 않아서 파일을 생성하지 않는다. 대신 make로 명령을 실행 시 생성되는 Target 파일들을 제거해주는 용도로 사용된다. make를 수행 전 안전하게 파일들을 제거하고 다시 새롭게 하기 위한 용도로 사용된다. make clean 을 이용한다.
해당 글은 개인 공부 및 기록용으로 작성된 글입니다.
문제시 삭제조치 하도록 하겠습니다.
728x90
반응형
'Misc > tools' 카테고리의 다른 글
[tools] screen (0) | 2023.09.07 |
---|---|
[tools] pwnable 세팅용 스크립트 (0) | 2023.09.07 |