make 유틸리티
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 [빨간색코딩]
'기타 > C언어' 카테고리의 다른 글
소켓 옵션과 관련 API (0) | 2021.03.22 |
---|---|
hostent 구조체, 도메인 관련 API (0) | 2021.03.22 |
TCP소켓 Half-close 기법 (0) | 2021.03.22 |
(UDP소켓 프로그래밍) socket.h API, connected UDP소켓 (0) | 2021.03.22 |
표준 스트림 (표준출력과 표준오류의 차이) (0) | 2021.03.22 |
구조체의 메모리 저장방식 (0) | 2021.03.22 |
(TCP소켓 프로그래밍) socket.h API, 네트워크 바이트 순서 (0) | 2021.03.22 |
[C] 퀵정렬 예제 정리 (0) | 2019.07.26 |