1. object 파일 만들기
- 헤더파일(.h)은 main.c 등에 명시되어 있으므로 따로 만들지 않아도 된다.
$ gcc -c -o main.o main.c
$ gcc -c -o A.o A.c
$ gcc -c -o B.0 B.c
...
(main.c를 컴파일하여 main.o라는 이름의 파일을 만든다.)
- 모든 c파일(.c)에 해당하는 오브젝트 파일(.o)을 만들어야 한다.
2. object 파일 묶기
$ gcc -o a.out main.o A.o B.o ...
- object 파일들을 묶어 하나의 실행파일 (a.out)을 만든다.
3. Makefile 만들기
( Makefile을 만드는 기본 원리는 다음과 같으나 잘 이해가 되지 않으니 예제를 통해 보는것이 낫다. )
<target> : <dependency>
(tab)<recipe>
* <target> : 대상 / <dependency> : 의존관계 / <recipe> : 명령
- Makefile 파일을 만든 후 다음과 같이 써준다.
a.out : main.o A.o B.o
(tab) gcc -o a.out main.o A.o B.o
main.o : main.c
(tab) gcc -c -o main.o main.c
A.o : A.c
(tab) gcc -c -o A.o A.c
B.o : B.c
(tab) gcc -c -o B.o B.c
clean:
(tab) rm *.o a.out
- 참고로 (tab) 부분은 무조건 탭으로 들여쓰기 해주어야 한다.
4. Makefile 실행하기
$ make
$ make clean
- make 명령어를 통해 a.out 실행파일이 생성된다. 이것을 실행하면 된다.
- make clean 명령어는 .o 파일과 a.out 파일을 삭제해준다.
'리눅스' 카테고리의 다른 글
[Window 11] 도커 WSL 2 installation is incomplete 오류 해결 (0) | 2022.12.02 |
---|---|
VMware-Window간 파일, 텍스트 복사 붙여넣기 / 아무리 해도 안될 때 해결 방법 (0) | 2022.09.15 |
[VMware] vmware tools 설치 시 에러 / Please re-run this program (0) | 2022.09.15 |
[Makefile:2: *** 분리 기호가 빠졌음. 멈춤.] 해결 방법 (0) | 2022.05.10 |
우분투 버전 확인 명령어, gcc 버전 확인 명령어 (0) | 2022.03.28 |