리눅스에서 컴파일할때 항상 gcc -i a.out a.c 커맨드를 입력했지만,
프로그램규모가 커질수록 필요한 소스파일을 하나씩 입력하는것이 점점 버거워질것이다.
이때 필요한것이 Makefile인대
Makefile을 읽어들여서 알아서 컴파일해주게 된다.
Makefile 에 대한 설명
1. $@ 목적파일의 이름을 나타낸다
2. $< 소스파일 한가지를 나타낸다.
3. $^ 소스파일 전체를 나타낸다.
4. 최상단에는 최종프로그램의 이름을 'all:'과 함께 넣는다.
ex) main.c와 foo.c를 컴파일해주는 Makefile
- all: hello_world
- hello_world: main.o foo.o
- gcc -o $@ $^
- main.o: main.c
- gcc -c $@ $<
- foo.o: foo.c
- gcc -c $@ $<
- clean:
- rm -rf *.o hello_world
make키워드를 입력할 때는 해당디렉토리에 Makefile이 있어야한다.
make를 입력하면 위의 명령들을 자동으로 수행해주고 결과파일들을 만들어준다.
make clean키워드를 입력하면
clean: 부분에 있는 명령을 통해 필요없는 오브젝트파일들을 모두지우거나, 목적프로그램을 지울 수 있다.
Makefile을 이용하면 리눅스에서도 간단한 과정을 통해 프로그램을 빌드할 수 있을것이다.
위의 Makefile을 사용하기위한 예제이다.
댓글