공부

📌 프로그래밍의 Build 과정 4가지 요소 완벽 정리

projectlim 2025. 3. 6. 15:04
728x90
반응형
SMALL

소스 코드가 실행 가능한 프로그램으로 변환되는 과정, 바로 빌드(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)가 실행 파일을 메모리에 적재(로드) 하고, 필요한 라이브러리를 불러옵니다.

로드 과정

  1. 실행 파일을 RAM(메모리)에 복사
  2. 필요한 라이브러리(.dll, .so)를 로드
  3. 프로그램 시작점을 찾아 CPU에 실행 요청

➡ 실행 전 메모리 할당, 의존성 해결이 이루어집니다!


4️⃣ 실행(Execution) 🚀

CPU가 코드를 실행하고 프로그램 동작 시작

로딩이 끝나면, CPU가 코드를 읽고 실행합니다.

실행 중 주요 동작

  • 변수 할당 & 연산 수행
  • 사용자 입력 처리
  • 새 프로세스 생성 (필요 시)
  • 프로그램 종료 후 메모리 해제

📌 실행 예제 (Linux)

./program

➡ program 실행 파일을 실행하여 프로그램 시작!


🏁 빌드 과정 한눈에 보기

단계 설명

1️⃣ 컴파일 소스 코드 → 오브젝트 파일 변환
2️⃣ 링크 오브젝트 파일 + 라이브러리 → 실행 파일 생성
3️⃣ 로드 실행 파일을 메모리에 적재
4️⃣ 실행 CPU가 프로그램 실행

 

결론: 소스 코드가 실행 파일로 변환되고 실행되기까지의 필수 과정! 💡

빌드 과정을 이해하면 디버깅과 최적화에도 큰 도움이 됩니다. 그럼, 다음 포스팅에서 더 유익한 내용으로 만나요! 😊

728x90
반응형
LIST