빌드
빌드의 전 과정

실습 1.
1) 전처리된 소스파일 만들기(-E)

-e 는 올바른 명령어가 아님

2) 전처리 지시자

실습 2.
1) 어셈블리 파일 만들기(-S)

코드파일 자체로 만들기

전처리된 파일로 만들기

실습 3.
1) 목적 파일 만들기(-c)

코드파일 자체로 만들기

어셈블리 파일로 만들기

실습 4.
1) 실행 파일 만들기

코드파일 자체로 만들기

목적 파일로 만들기

5. -E, -S, -c / -o<파일명> 없이 빌드하는 경우


a.out(assembler output)이라는 실행파일을 자동 생성함
Make / Makefile
Make
사용자가 작성한 Makefile을 기반으로 빌드를 자동화 해주는 도구
Makefile
Make 프로그램이 컴파일시 필요한 명령어를 정의한 파일
makefile(x), Makefile(o)
실습 1. Makefile / .c -> 실행파일(전체 컴파일)
가정) main.c foo.c bar.c baz.c qux.c 와 같은 여러 파일을 빌드할 예정
1) 기본구조 - make



2) clean - make clean



실습 2. Makefile / .c -> .o(개별진행) / .o -> 실행파일(전체)
가정) main.c foo.c bar.c baz.c qux.c 와 같은 여러 파일을 빌드할 예정
1) 목적파일(.o) 생성



2) 실행파일(myprogram) 생성



Q) Makefile에서 foo.o를 주석 처리하여 제거하게 되면 어떻게 될까?
Answer > 알아서 해줌


> 다만 make는 명시적으로 gcc가 없다면 기본값 cc를 사용하게 됨
> myprogram 뒤 의존성을 확인하기 위한 궁금증이였는데 Makefile 내 의존성을 해결할 수 있는 명령이 있으면 그것을 사용하고, 아닌 경우에는 make 내 기본값을 사용해서 의존성을 해결하는 것을 알게됨
'LMS 7 > 개발일지' 카테고리의 다른 글
| 25.07.28 학습개발일지 / Makefile+ (2) | 2025.07.30 |
|---|---|
| 25.07.27 학습개발일지 / C++ Study3 (3) | 2025.07.30 |
| 25.07.24 학습개발일지 / C++ (5) | 2025.07.29 |
| 25.07.23 학습일지 / C++ (3) | 2025.07.29 |
| 25.07.22 학습일지 / C++ (3) | 2025.07.29 |