[내일배움캠프 Day17] C++ 빌드 과정

2025. 1. 9. 23:16·내일배움캠프/TIL

소스 코드 작성, 전처리, 컴파일, 어셈블, 링크, 실행 순으로 수행됩니다. 먼저, 사용자가 작성한 소스코드의 #으로 시작하는 전처리기 구문을 처리합니다. 그 다음 고수준의 언어를 어셈블리 언어로 번역하는 작업을 합니다. 어셈블 단계에서는 어셈블리 파일을 오브젝트 파일로 만들고 오브젝트 파일을 합치고, 링크 단계에서 라이브러리와 연결해 주고 실행 가능한 파일을 생성해줍니다.

 

 

전처리 → 컴파일러 → 어셈블러 → 링커

 

컴퓨터는 0과 1로만 이루어져있기 때문에 컴퓨터가 이해할 수 있도록 만들어 주어야 합니다. 이런 과정을 빌드라고 합니다.

  • 전처리(preprocessing) : 코드의 주석을 제거, 헤더 파일을 삽입하고, 메크로를 치환하는 기능을 한다.
  • 컴파일(Compilation) : 어셈블리 코드로 변환한다. 어셈블리(저수준 언어)는 CPU 명령어 조합이다. (어휘 분석, 구문 분석, 의미 분석)
  • 어셈블리(Assembly) : 0과 1의 기계어로 변환한다. 최종적으로 목적 코드(object file) 생성
  • 링킹(Linking) : 오브젝트 파일들을 묶어서 실행 파일로 변환한다. 운영체제가 로딩할 수 있도록 주소 정보를 할당한 파일을 만들어 낸다. 번역된 파일을 하나로 연결해 실행가능한 파일로 만들어준다.

 

컴파일 언어의 장점

빌드가 완료된 실행가능한 파일은 실행 속도가 빠르다.

 

  • 인터프리터 언어 : 인터프리터에 의해 소스 코드가 한 줄씩 실행되는 고급 언어
  • 컴파일 언어 : 컴파일러에 의해 소스 코드 전체가 저급 언어로 변환되어 실행되는 고급 언어

 

요즘 매일 C++, 컴퓨터구조, 운영체제, 알고리즘, 자료구조, 네트워크를 각각 1시간씩 공부하고 남은 시간에 그날 공부하고 싶은 내용들을 공부 중이라 TIL에 적을 내용이 별로 없어 미루다가 3일치를 한 번에 작성했습니다.. 다음부터는 내용이 적어도 매일 쓰는 것을 목표로 하겠습니다. 업보 청산이 힘드네요 

'내일배움캠프 > TIL' 카테고리의 다른 글

[내일배움캠프 Day23] CH2 팀 프로젝트  (3) 2025.01.17
[내일배움캠프 Day18] 인라인 함수(inline function)  (2) 2025.01.10
[내일배움캠프 Day16] C++ 3주차 과제 진행  (1) 2025.01.09
[내일배움캠프 Day15] 디자인 패턴 - 구조 패턴  (2) 2025.01.09
[내일배움캠프 Day14] 디자인 패턴 - 생성 패턴  (1) 2025.01.06
'내일배움캠프/TIL' 카테고리의 다른 글
  • [내일배움캠프 Day23] CH2 팀 프로젝트
  • [내일배움캠프 Day18] 인라인 함수(inline function)
  • [내일배움캠프 Day16] C++ 3주차 과제 진행
  • [내일배움캠프 Day15] 디자인 패턴 - 구조 패턴
개발자 밍
개발자 밍
dev0404 님의 블로그 입니다.
  • 개발자 밍
    Developer
    개발자 밍
  • 전체
    오늘
    어제
    • 분류 전체보기 (88)
      • 강의 (8)
        • UE Climbing System (3)
        • UE Dungeon (1)
        • HCI (4)
      • 책 (18)
        • 객체지향의 사실과 오해 (5)
        • Effective C++ (3)
        • 이득우의 게임 수학 (4)
        • 이것이 취업을 위한 컴퓨터 과학이다 (4)
        • 리뷰 (2)
      • C++ (2)
      • 알고리즘 (2)
      • 자료구조 (1)
      • Unreal (4)
      • 내일배움캠프 (52)
        • TIL (52)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    알고리즘
    객체지향
    자료구조
    컴퓨터구조
    그래픽스
    게임수학
    내일배움캠프
    Effective
    언리얼
    컴퓨터 구조
    c++
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
개발자 밍
[내일배움캠프 Day17] C++ 빌드 과정
상단으로

티스토리툴바