소스 코드가 실행 가능한 프로그램으로 변환되는 과정, 바로 빌드(Build) 과정입니다! 🚀 이번 포스팅에서는 빌드의 4가지 핵심 요소(컴파일, 링크, 로드, 실행)를 한눈에 정리해보겠습니다.
1️⃣ 컴파일(Compile) 🔧
소스 코드 → 기계어(오브젝트 파일) 변환
소스 코드(C, C++ 등)는 컴퓨터가 직접 이해할 수 없습니다. 따라서 컴파일러(GCC, Clang 등) 가 이를 기계어 코드로 변환합니다.
✅ 컴파일 과정
- 문법 검사 → 최적화 → 오브젝트 파일(.o, .obj) 생성
📌 예제 (C 코드 컴파일)
gcc -c main.c -o main.o
➡ main.c를 컴파일하여 main.o(오브젝트 파일) 생성!
2️⃣ 링크(Linking) 🔗
오브젝트 파일 + 라이브러리 → 실행 파일 생성
여러 개의 오브젝트 파일과 라이브러리(.lib, .a, .so, .dll) 를 결합하여 실행 가능한 프로그램을 만듭니다.
✅ 링킹 방식
- 정적 링크(Static Linking): 실행 파일에 라이브러리 포함 → 독립적 실행 가능
- 동적 링크(Dynamic Linking): 실행 시 .dll, .so 파일을 로드 → 파일 크기 작고 유연함
📌 예제 (C 프로그램 링크 과정)
gcc main.o utils.o -o program
➡ main.o, utils.o를 링크하여 program 실행 파일 생성!
3️⃣ 로드(Loading) 📥
실행 파일을 메모리에 로드 후 실행 준비
운영체제(OS)가 실행 파일을 메모리에 적재(로드) 하고, 필요한 라이브러리를 불러옵니다.
✅ 로드 과정
- 실행 파일을 RAM(메모리)에 복사
- 필요한 라이브러리(.dll, .so)를 로드
- 프로그램 시작점을 찾아 CPU에 실행 요청
➡ 실행 전 메모리 할당, 의존성 해결이 이루어집니다!
4️⃣ 실행(Execution) 🚀
CPU가 코드를 실행하고 프로그램 동작 시작
로딩이 끝나면, CPU가 코드를 읽고 실행합니다.
✅ 실행 중 주요 동작
- 변수 할당 & 연산 수행
- 사용자 입력 처리
- 새 프로세스 생성 (필요 시)
- 프로그램 종료 후 메모리 해제
📌 실행 예제 (Linux)
./program
➡ program 실행 파일을 실행하여 프로그램 시작!
🏁 빌드 과정 한눈에 보기
단계 설명
1️⃣ 컴파일 | 소스 코드 → 오브젝트 파일 변환 |
2️⃣ 링크 | 오브젝트 파일 + 라이브러리 → 실행 파일 생성 |
3️⃣ 로드 | 실행 파일을 메모리에 적재 |
4️⃣ 실행 | CPU가 프로그램 실행 |
➡ 결론: 소스 코드가 실행 파일로 변환되고 실행되기까지의 필수 과정! 💡
빌드 과정을 이해하면 디버깅과 최적화에도 큰 도움이 됩니다. 그럼, 다음 포스팅에서 더 유익한 내용으로 만나요! 😊
'공부' 카테고리의 다른 글
🚀부트로더란? 컴퓨터 부팅의 시작! (2) | 2025.03.17 |
---|---|
💾 [C언어]들어는봤다!! 동적 할당 메모리 malloc과 free (0) | 2025.03.16 |
🧠 Heap 구조란? 쉽게 이해하는 자료구조의 핵심! (2) | 2025.03.13 |
✅ B-tree 자료구조 완전 정복 🔍 (0) | 2025.03.12 |
🤖로보월드 후기 (2) | 2024.11.21 |