본문 바로가기
프로그램 개발(분석, 설계, 코딩, 배포)/2. 개발

개발_C언어 프로그램 빌드 과정(실행파일(.exe) 생성 과정)

by 3604 2022. 11. 12.
728x90

출처: https://ssinyoung.tistory.com/2

우리가 게임이나 다른 프로그램들을 다운로드하게 되면

바탕화면에 실행파일이 생성되고,

이 실행파일을 통해 프로그램을 실행시킵니다.

 

이번 포스팅 주제는 이 실행파일의 생성 과정입니다.

 

 

예시) 리그 오브 레전드 

LoL 클라이언트 다운로드

LoL 실행파일

 

 


 

 

실행파일은 코드 작성, 전처리기, 컴파일, 어셈블러, 링크 과정을 거쳐서 만들어지게 됩니다.

 

프로그램 빌드 과정

 

 


 

 

1. 코드 작성

자, 우선 프로그램을 만들기 위한 소스코드가 필요하겠죠?

버그 없이 돌아가는 코드라면 어떤 것이라도 상관이 없습니다.

간단한 출력 프로그램을 예시로 사용하겠습니다.

 

간단한 출력 예제

 

실행 결과

 

 


 

 

2. 전처리기

컴파일에 들어가기 앞서

사용자가 작성한 소스 코드가 정상 작동하도록

# (전처리 지시자)의 지시에 맞게

컴파일 전에 단순 치환하는 단계입니다.

 

#include <stdlib.h>의 소스코드

 

즉, 전처리 과정이란

#include <stdlib.h>를

파일 안의 내용으로 바꿔주는 과정입니다.

 

#include 말고도 #define 전처리기도 마찬가지 입니다.

예를 들어서, #define PI 3.14f 도

PI를 3.14f로 치환하는 과정을 거치게 됩니다.

 

 


 

 

3. 컴파일

컴파일 단계는 사용자가 작성한

고수준 언어를 어셈블리어로

한 단계 번역하는 단계 입니다.

 

고수준 언어란 지금 우리가 쓰고있는

C, C++, Java 등 프로그래밍 언어를 말합니다.

 

어셈블리어는 0,과 1로 이루어진 기계어를 

그나마 프로그래머들이 사용하기 쉽게 개발하 언어입니다.

기계어와 고수준 언어의 중간 단계라고 보시면 됩니다.

 

 


 

 

4. 어셈블러

번역된 어셈블리어를 기계어로 최종적으로 번역하는 단계입니다.

 

만약 소스코드에 오류가 없다면

컴파일러는 각 문장들을 기계어로 변환합니다.

 

이 기계어로 되어있는 파일은 오브젝트 파일(object file)이라고 불립니다.

오브젝트 파일은 윈도우즈에서 .obj 확장자를 가집니다.

 

main.cpp를 컴파일 했으므로 main.obj파일이 생성됩니다.

 

 

 

 


 

 

5. 링크

컴파일이 성공적으로 수행되었다면

다음 단계는 링크 단계 입니다.

 

링크 단계는 오브젝트 파일들을 라이브러리와 하나로 묶는 단계입니다.

 

라이브러리란 프로그래머들이 많이 사용되는 기능을

미리 작성해 놓은 것으로, 컴파일러에 내장되어 있습니다.

 

이 링크를 수행하는 프로그램을 링커라고 합니다.

 

 


 

 

6. 실행파일 생성

이 모든 과정을 거치게 되면 실행파일이 생성됩니다.

 

실행 파일의 이름은 작성한 프로젝트 이름으로 만들어집니다.

저는 "1.프로그램빌드 과정" 으로 프로젝트 이름을 만들었기 때문에

"1.프로그램 빌드 과정.exe" 파일이 생성된 것을 확인할 수 있습니다.

 

 

exe파일을 실행하면

우리가 Visual Studio 상에서 확인한 출력 결과를

똑같이 확인할 수 있습니다.

 

 

728x90