CS/시스템프로그래밍
Makefile & make
동 캄
2022. 2. 4. 12:41
반응형
Makefile
- Compile 방법을 기술 하는 파일 (관련 파일 정보, compile 명령, 실행 파일명 등)
- 여러 파일로 구성된 프로젝트 설정과 비슷한 개념
- 소스코드가 있는 폴더에 위치
Make
- 주어진 Makefile에 따라 compile을 수행하고, 실행파일을 생성
- 최초 컴파일 이후에는, 변경이 있는 파일만 컴파일 함
Makefile이 없다면
- 각 파일 하나하나 complie하고, linking작업을 해주어야 함
- code 수정시에 실수 발생 가능
Makefile Rule
- Rule block
<Target>: <Dependencies>
<Recipe>
- Implicit rules -> 자주 사용되는 규칙을 자동으로 처리 해줌
(단, Target에 대한 Dependency까지는 명시 할 것)
Makefile variables 예제
- CC=gcc
- CFLAGS = -g Wall
- OBJS= main.o foo.o bar.o
- TARGET = app.out
이라고 한다면,
$(TARGET):$(OBJS)
$(CC) -o $@ $(OBJS) # $@ (자동으로 target name을 자동으로채워줌)
Clean Rules
-Build로 생성된 파일들을 삭제하는 규칙
- Clean build를 위해 사용 가능
clean:
rm -f *.o
rm -f $(TARGET)
반응형