Makefile이란?
1. Makefile의 정의
- linux상에서 반복 적으로 발생하는 컴파일을 쉽게하기위해서 사용하는 make 프로그램의 설정 파일이다.
- Makefile을 통하여 library 및 컴파일 환경을 관리 할수 있다.
2. Makefile의 기본 구조
- 파일명 : Makefile
- 기본 구조는 다음과 같이 매크로 정의, 룰 , 명령어로 되어있다.
3. Makefile의 매크로 정의란 무엇인가?
- Makefile에서 미리 정의 되어있는 환경 변수라고 생각하면된다.
- 2. 기본 구조에서 CC = gcc 에서 CC가 매크로이다.
4. Makefile에서의 매크로의 종류
- makefile에서 미리 정의된 매크로 확인 방법
#make -p
- 주요 매크로 설명
매크로 명 |
용도 |
DEFS |
Define 추가 할때 사용한다. |
CFLAGS |
gcc의 옵션을 추가 할때 사용한다. |
CC |
컴파일러는 변경할때 사용한다. |
CPPFLAGS |
c++ 의 보션을 |
CXX |
c++ 의 컴파일러는 선택 |
LDFLAGS |
ld 의 옵션 세팅 |
LD = ld |
|
5. 예제를 통한 Makefile 만들기
1) 목표
- hello word Make 파일
cc = gcc TARGET = hello $(TARGET) : hello.o $(cc) -o $(TARGET) hello.o hello.o : hello.c $(cc) -c -o hello.o hello.c clean : rm -rf $(TARGET)
- hello.c 파일
#include<stdio.h> int main(int argc, char** argv) { printf("Hellow Makefile\n"); return 0; }
- 실행
#make 또는 make -f Makefile
'프로그래밍 > 리눅스 프로그래밍' 카테고리의 다른 글
[프로세스간 통신] IPC(inter process communication) 종류 (8) | 2018.09.10 |
---|---|
[Segfault] Core가 없을때 dmesg로 죽은 원일 분석 하기 (0) | 2018.08.29 |
[Segfault] 기초 편 : Linux의 Segmentation Fault(Segfault) 분석 방법 (0) | 2018.08.26 |
[libcurl] libcurl + openssl + multi thread 처리에 대한 고민 (2) | 2018.04.30 |
[메모리] share memory 사용법 (0) | 2018.04.17 |