Linux/Linux OS
gcc와 make를 이용한 컴파일
값진
2021. 6. 15. 06:25
gcc로 컴파일
- age.c 파일
#include <stdio.h>
void age(){
printf("I am 10 years old.\n");
}
- 메인 소스 파일인 main.c, name.c, age.c, height.c를 만들었을 때, 오브젝트 파일을 생성한다.
$ gcc -c -o name.o name.c
$ gcc -c -o age.o age.c
$ gcc -c -o height.o height.c
-> ~.o 라는 이름으로 오브젝트 파일이 생성된다.
- 오브젝트 파일로 컴파일 하기
$ gcc -o intro_exe main.o name.o age.o
$ ./intro_exe
My name is JK.
I am 10 years old.
make로 컴파일
make 파일은 목적파일(Target), 의존성(Dependency), 명령어(Command), 매크로(macro)로 이루어져있다.
( https://minchae.tistory.com/56?category=956680 참고)
- makefle 만들기
intro_exe : name.o age.o main.o
gcc -o intro_exe name.o age.o main.o
name.o : name.c
gcc -c -o name.o name.c
age.o : age.c
gcc -c -o age.o age.c
main.o : main.c
gcc -c -o main.o main.c
clean :
rm *.o intro_exe
- make clean 명령어로 오브젝트 파일과 실행파일 intro_exe 삭제
$ make clean
rm *.o intro_exe
- make 실행
$ make
gcc -c -o name.o name.c
gcc -c -o age.o age.c
gcc -c -o main.o main.c
gcc -o intro_exe name.o age.o main.o
- 성공적으로 실행 완료
$ ./intro_exe
My name is JK.
I am 10 years old.
Makefile의 기본 틀이 간단해서 확실히 익혀두고 계속 사용해도 좋을 것 같다. 작업 도중 빠르게 실행할 업무가 있을때 Makefile을 사용하면 편리할 것 같다.