본문 바로가기
까망 동네/IT 용어

컴파일 / 링크 / 빌드가 무엇일까?

by 까망 하르방 2021. 12. 4.
반응형

컴파일 (Compile)

컴파일 (Compile)이란 작성된 소스코드를 컴퓨터가 이해할 수 있는 

기계어(Binary Code)로 변환하는 작업

OS 종류와 프로그래밍 언어에 따라 컴파일 결과물은 다르다.

 

컴파일에도 여러 단계가 있다.

• lexical-phase (어휘 분석 단계) → 괄호, semicolon(;) 등

• syntactic-phase (구문 분석 단계 함수 parameter 등

• semantic-phase (의미 분석 단계)

위 예시는 문법에는 위배되지 않기 때문에

구문 분석은 통과하지만 의미 분석 단계에서 오류로 검출된다.

이러한 작업을 해주는 프로그램을 컴파일러라고 한다.

 

링크 (Link)

Compile로 생성된 기계어 코드만으로 바로 실행되지는 않는 편이다.

대부분의 애플리케이션 로직에는 사용자가 직접 작성한 소스 코드가 있지만

내부에는 상당히 많은 라이브러리를 이용하기도 혹은 직접 만들어 활용하기도 한다.

기본적으로 표준 라이브러리(Standard library)가 제공되며
이러한 라이브러리를 Application과 연결해 주는 작업이 바로 링크(link)

 

링크(link)는 여러 개의 오브젝트파일을 하나의 실행파일로 묶어주는 것이라고 보면 된다.

링크를 실행해주는 프로그램으로 링커(Linker)가 있다.

• 정적링크 (static link)

    ; 컴파일된 소스파일을 연결해서 실행가능한 파일을 만드는 것

 동적링크 (dynamic link)

    ; 프로그램 실행 도중 외부에 존재하는 코드를 찾아서 연결


빌드(Build) = 컴파일(Compile) + 링크(Link)

빌드(Build): 컴파일(Compile)된 소스코드에 필요한 파일을 링크(Link) 시켜주는 것이다.

#include <stdio.h>

int main()
{
       printf("까망 하르방\n");
}

 

Visual Studio에는 [Build]와 [Run]이 있다.

 

 

소스 코드를 작성하고 [Build]만 해주면

파일이 있는 경로에서 obj 파일이 생성되는 것을 확인할 수 있다.

 

 

[Run]을 해주면 Build와 동시에 해당 파일을 실행해주는 것이라고 보면된다.

 

이처럼 IDE에서는 [Run] 이란 명령어로 [Build + 실행] 단계를 제공해준다.

그 중간과정으로 문법이 잘못되면 "컴파일 에러"를 확인하기도

링크해줄 파일이 없어서 "빌드 에러"가 난다고 하는데,

Error Message를 보면 개발환경에서 무엇이 문제인지 짐작해볼 수 있다.

반응형

'까망 동네 > IT 용어' 카테고리의 다른 글

👨‍💻 Shmoo Plot 이란?  (0) 2022.07.30
🧑‍💻 CI / CD 란 무엇일까?  (0) 2022.04.11
SW 개발자에게 유지보수란?  (0) 2021.11.20
미들웨어(MiddleWare)란?  (0) 2021.09.18
UX / UI / GUI란?  (0) 2021.09.17

댓글