Kim VamPa

컴파일(Compile), 링크(Link), 빌드(Build) 정리 본문

공부/자바

컴파일(Compile), 링크(Link), 빌드(Build) 정리

Kim VamPa 2020. 3. 18. 09:23
728x90
반응형

개인공부 후 자료를 남기기 위한 목적이기에 내용 상에 오류가 있을 수 있습니다.


목표

  • 컴파일, 링크, 빌드 전체 과정을 이해한다.
  • 컴파일, 컴파일러 개념
  • 링크, 링커 개념
  • 빌드, 빌드툴 개념

 

 

 

 

빌드 과정

1-1 빌드과정

  •  1-1그림 1번은 컴파일(compile)에 해당한다.
  •  1-1그림 2번은 링크(Link)에 해당한다.
  •  1번과 2번 두과정을 합쳐서 빌드(Build)라고 한다.

* 소스코드(원시코드) : 컴퓨터 프로그램을 (사람이 읽을 수 있는) 프로그래밍 언어로 기술한 글을 말한다.

* 목적코드(목적파일) : 컴파일러나 어셈블러가 소스코드 파일을 컴파일 또는 어셈블해서 생성하는 파일이다.

 

 

 

 

 

컴파일, 컴파일러란?

  • 컴파일(Complile) : 원시 코드에서 목적 코드로 옮기는 과정을 말한다.
  • 그림 1-1 1번을 뜻한다.
  • 다시말해서 고급 언어(java, c언어, python 등)에서 저급 언어(기계어, 어셈블리어)로 번역하는 과정이다.
  • 더 큰 의미의 컴파일 뜻 으로는 그림1-1 전체를 말하기도 한다.

 

  • 컴파일러(Compiler) : 컴파일을 실행하는 프로그램을 말한다.

 

 

 

 

 

링크(Link), 링커(Linker)란?

  • 링크(Link) :  컴파일러의 결과물인 목적코드(Object code)들을 최종 실행 가능한 실행파일(.exe) 만들기 위해 연결 ,병합 해주는 작업입니다.
  • 링커(Linker) : 링크를 실행해주는 프로그램입니다.
  • 정적 링크(static link)와 동적 링크(dynamic link)로 나뉜다.
  • 정적 링크 : 컴파일된 소스파일을 연결해서 실행가능한 파일을 만드는 것입니다.
  • 동적 링크 : 프로그램 실행 도중 프로그램 외부에 존재하는 코드를 찾아서 연결하는 작업을 말합니다.(동적 링크는 링커가 필요가 없다.)

 

 

 

 

빌드(Build),빌드 툴(Build tool)란?

  • 빌드(Build) : 소스 코드 파일을 실행할 수 있는 독립 소프트웨어 가공물로 변환하는 과정을 말하거나 그에 대한 결과물을 일컫는다.
  • 다시말해, 컴파일과 링크 두개의 과정을 합친것을 뜻한다.
  • 빌더 툴(Build tool) : 빌드를 수행하는 도구를 말한다.
    - 종류 : Ant, Maven, Gradle 
    - 빌드 툴이 제공하는 기능은 전처리(preprocessing), 컴파일(Compile), 패키징(packaging), 테스팅(testing), 배포(distribution) 이 있다.

 

 

 

 

Reference

 

 

 

 

Date

  • 2020.03.18 글 등록

 

 

728x90
반응형
Comments