Skip to content
Snippets Groups Projects
Commit 06fb5879 authored by BeomSooHeo's avatar BeomSooHeo
Browse files

Update 2020_08_07.md

parent 902d301e
No related branches found
No related tags found
No related merge requests found
......@@ -2,31 +2,35 @@
## Makefile 작성
![image](/uploads/b1e796b80bed56c878a60e8e9238ab4f/image.png)
![image](/uploads/bd4fad65fe0680ce5e2bb99e5b9fe1fb/image.png)
<br><br>
매크로 정의
### 1.매크로 정의
> 1. SRCS : 컴파일에 필요한 소스파일들을 의미
> 2. OBJS : SRCS에 정의된 .c 파일들의 각 이름만을 .o 파일에 치환된 것을 의미
> 3. CC : gcc로 치환
> 4. CFLAGS : gcc 컴파일시 사용할 옵션들을 정의
최종 실행파일 test를 빌드하기 위해서 OBJS(오브젝트 파일들)이 먼저 생성되야한다.
test를 실행시 사용되는 매크로들을 보면
### 2.최종 실행파일 test를 빌드하기 위해서 OBJS(오브젝트 파일들)이 먼저 생성되야한다.
> 1. CC : 앞에서 정의한 매크로 -> gcc
> 2. 내장매크로 @ : 현재 target 파일명 -> test
> 3. 내장매크로 ^ : 현재 모든 의존파일들 -> main.o func.o
.c.o : 확장자 규칙으로, 파일의 확장자를 보고 그에 따라 적절한 연산을 수행한다.<br>
### 3. .c.o : 확장자 규칙으로, 파일의 확장자를 보고 그에 따라 적절한 연산을 수행한다.<br>
여기서 .c는 C소스코드, .o는 Object 파일을 의미한다.<br>
> 1. 앞에서 정의한 매크로들을 치환하면, gcc -c -O -Wall $<이다.
> 2. 내장매크로 < : 의존파일 중 첫번째 파일명
> 3. 결국 의존파일 중 확장자가 .c인 C소스코드나 .o인 Object파일들에 대해 모두 gcc -c -O -Wall을 수행한 것.
make clean : make의 결과로 생긴 Object 파일들과 실행 파일을 삭제.
<p>gccmakedep : 소스파일의 의존관계를 자동으로 찾아 파일간의 종속에 대한 정보를 모두 타이핑할 필요가
### 4. make clean :
<p>make의 결과로 생긴 Object 파일들과 실행 파일을 삭제한다. 원래는 최종 실행파일을 만드는데 필요한 Object 파일들이 현재 디렉토리 내에 없을 경우
에러를 발생시키지만, -rm을 사용하면 삭제하고자하는 파일이 없더라도 에러를 발생시키지 않고 다음 명령을 실행한다.
Object 파일을 따로 생성해두지 않고 바로 빌드를 하는 경우도 있기 때문에 -rm OBJS를 사용했고 반면 실행파일은 반드시 make clean의 대상이어야 하기에
-rm이 아닌 rm을 썼다.</p>
### 5. gccmakedep
<p> 소스파일의 의존관계를 자동으로 찾아 파일간의 종속에 대한 정보를 모두 타이핑할 필요가
없어짐. make dep을 실행시키면 dep 라벨 밑에 명령이 생성되고, 이후 make시 컴파일과 링크를 dep 라벨 밑의 명령으로 수행한다.
</p>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment