게임학원, 게임프로그래머 취업 전문 교육기관 DirectX11/12 자체엔진 게임개발과정,서버프로그래밍,자료구조,알고리즘,유니티,언리얼 게임학원, 언리얼학원 컴파일과정
본문 바로가기

컴파일과정

C++ 컴파일 과정에 대해 알아보는 과정을 가져보겠습니다.


우선 컴파일된 결과물을 한번 살펴보겠습니다.


 - 출력폴더의 결과물

   


 - 프로젝트 폴더의 결과물

   


MSDN에서 살펴 보면 정확한 내용을 알아볼수 있습니다.


- Visual C++ 프로젝트용으로 만들어지는 파일 형식

  https://msdn.microsoft.com/ko-kr/library/3awe4781.aspx


파일확장명

형식

목차

.idb

컴파일

소스 파일과 클래스 정의 간의 종속성 정보가 포함된 상태 파일. 최소 다시 빌드 및 증분 컴파일 중에 컴파일러에 의해 사용될 수 있습니다. .idb 이름을 지정하려면 /Fd 컴파일러 옵션을 사용합니다. 자세한 내용은 /Gm(최소 다시 빌드 가능)을 참조하세요.

.ilk

연결

증분 링크 파일. 자세한 내용은 /INCREMENTAL을 참조하세요.

.obj, .o

 

컴파일되었지만 연결되지 않은 개체 파일

.pch

디버그

미리 컴파일된 헤더 파일



- PDB파일(C++)

  https://msdn.microsoft.com/ko-kr/library/yd4f8bd1(v=vs.90).aspx

  project.PDB. 이 파일에는 .exe 파일에 대한 디버그 정보가 모두 저장됩니다.


결과물은 위와 같은 파일들이 생성이 됩니다.


우선 표로 컴파일 과정을 살펴본다면


이런과정에 의해서 우리가 원하는 EXE파일이 나오게 되는것이죠


CPP파일에 소스를 작성하고 컴파일을 한다면 전처리기를 거쳐 Compiler에서

 (선행처리기란 프로그래머와 컴파일러 사이에서 매개 역할을 수행하며, C 프로그램을 컴파일하기 전에

  프로그래머가 작성한 원시 프로그램에 특정하게 정의된 각종 내용을 삽입시키는 기능을 하는 처리기를 말한다.)

 어셈블로 변환하여 오브젝트 파일을 만들고 링커 과정을 거쳐 EXE파일이 나오게 됩니다.


오브젝트 파일들을 묶어서 실행 코드 파일로 변환합니다.

(운영체제의 Loader가 로딩할수있도록, 주소등을 적절히 계산해서 실행 파일을 만들어줍니다.)


컴파일러는 우리가 작성한 코드를 기계어로 변환하는 번역기입니다.

이 과정에서 소스를 어셈블리어로 변환하고 어셈블러가 기계어로 변환해주는 것입니다.

그 변환된 결과물이 Obj라는 파일인것이죠


링커는 목정파일과 라이브러리를 결합해주는 일을 합니다.


이런식으로 컴파일이 되겠습니다.




게임프로그래머 취업 전문 교육기관 어소트락 게임아카데미


프로그래밍 학원