출처 : 홍정모의 따라하며 배우는 C언어

소스 코드가 실행파일이 되는 과정을 그림으로 나타내었습니다.

저 과정을 빌드라고 합니다. 실행 가능한 파일 한 개를 만들어주는 것입니다.

("모든 언어의 빌드 과정이 저렇지 않습니다." - 홍정모의 따라하며 배우는 C언어 중에서-)

 

 

 

컴파일

먼저 컴파일에 대해서 알아보겠습니다.

컴파일이란 소스파일목적파일로 만드는 행위를 말합니다.

그런 행위를 하는 프로그램은 컴파일러라고 부릅니다.

 

소스파일을 목적파일로 만드는 행위란

간단히 말해 C같은 고수준 언어로 작성된 파일안의 언어를 기계어로 번역하여 파일에 저장하는 것을 말합니다.

#include <stdio.h>

int main()
{
	printf("hello world");

	return 0;
}

비주얼 스튜디오를 사용해 저런 코드를 짰다고 합시다. 

 

위 코드를 컴파일(Ctrl + f7) 하면 목적파일↓이 생성됩니다.

목적 파일 안에는 컴퓨터가 바로 이해할 수 있는 기계어 코드(오브젝트 코드)가 작성되어 있습니다.

 

 

 

 

 

 

링크

초보때는 소스코드를 하나만 컴파일 하는것이 대부분이지만

실력이 늘 수록 코드의 양이 늘어

파일 하나에 엄청난 양의 코드를 다루기 힘들어져

소스 코드 파일 여러개를 다루는 경우가 많습니다.

초보 때는 소스코드 하나를 컴파일 하지만
점점 늘어난다.

보통 소스파일 하나 당 목적파일을 하나씩 생성하는데(컴파일 했을 때)

소스파일이 여러개가 되면 당연히 목적파일도 여러 개가 될 것입니다.

 

그런데 우리가 만들어야하는 실행파일(exe파일)은 하나 입니다.

그래서 목적파일들을 합쳐서 실행파일로 만들어야 하는데,

그 때 목적파일들을 합치기 위해 연결시켜주는 프로그램이 링커 입니다.

(연결 시키는 행위를 링크라고 합니다.)

 

링커는 또한 라이브러리도 같이 합칩니다.

 

 

https://jhnyang.tistory.com/40

 

 

 

링커가 하는 일을 정리해 보자면,

1. 목적파일들을 연결한다. 

2. 라이브러리를 연결한다.

3.둘을 합쳐 실행파일(exe)을 만든다.

 

 

 

 

 

빌드

위에서 정리한 컴파일과 링킹 과정을 빌드라고 합니다.

pppppppp라는 프로젝트를 빌드 했다면,

(정확히는 솔루션 빌드가 아니라 build pppppppp (Ctrl + b))

 

소스파일들을 목적파일로 바꾼뒤(컴파일)

목적파일들과 라이브러리를 연결하여 합친 뒤(링킹)

프로젝트 pppppppp의 실행 파일 하나(exe)를 생성하는것 까지를 빌드라고 합니다.

 

 

 

 

 

 

요약

소스 코드(source code)가 담긴 소스 코드 파일(source code file)을

기계어로 번역(컴파일(compile))해서

목적 파일을 생성한다.

 

그 다음 생성한 목적파일들과 라이브러리를 링커를 이용해 링크한다. 

 

링크한 후 실행 가능한 목적파일(exe파일)을 생성한다

'C Language > 공부' 카테고리의 다른 글

프로그램 작성 흐름  (0) 2020.10.27
표준 입출력 함수들 총 정리  (0) 2020.09.08
학교 프로젝트하면서 배운 것들  (0) 2020.08.24
sizeof 연산자  (0) 2020.08.23
문자열 입출력하기  (0) 2020.08.22

+ Recent posts