빌드과정

1. 소스코드 ----- Preprocessing(전처리) →  전처리 완료 코드

- 소스 코드 내 메타 정보 처리

- #include, #pragma, #define, #ifdef 등의 '전처리기 지시문' 의 삽입/치환 처리

2. 전처리 완료 코드 ----- Compile(컴파일) →  어셈블리코드

- 전처리가 끝난 C++코드를 언어 규약에 맞춰 분석/번역해 어셈블리어로 변환

3. 어셈블리코드 ----- Assembly(어셈블리) →  오브젝트코드

- CPU가 처리할 수 있도록 기계어와 1:1 대응이 되는 Memonic Code로 변환

4. 오브젝트코드 / 정적라이브러리(*.lib) ----- Linking(링킹)  →  실행파일

- 최종적으로 실행 파일에 들어가는 .obj들과 .lib등을 연결해 실행 가능한 프로그램으로 만드는 단계

 

VS C++ 개발 시 생성되는 파일 종류

1) 솔루션 파일

- 여러 개의 프로젝트를 모아두고 관리하기 위한 파일

- .sln 형태로 만들어지며, xml과 유사한 자체 텍스트 포멧을 가지고 있음

 

2) 프로젝트 파일

- 하나의 실행파일(.exe) / 라이브러리파일(.lib, .dll) 등을 제작하기 위해 필요한 소스 파이

- 내용: 프로젝트의 속성, 소스파일( .c / .cpp / .h / .hpp 등)의 이름

- xml 포멧으로 구성

 

3) 프로젝트 필터 파일

- 솔루션 탐색기 내 프로젝트와소스 파일 배치(구성) 설정 파일

 

4) 목적 파일

- .obj 형태의 파일

- 어셈블리 단계를 마친 소스 코드 파일

: 최종 실행 파일을 만들 때 사용

 

5) 링크 파일

- *.ilk 형태의 파일

- 최종 실행파일을 생성하면서 발생하는 링크 정보를 저장한 파일

 

6) 프로그램 데이터베이스 파일

- *.pdb 형태의 파일

- 프로젝트 빌드 후 생성되는 각종 디버깅 정보, 상태정보, 변수이름, 타입, 함수, 클래스 정보 포함

- 런타임 오류(크래시) 시 생성하는 덤프(dump) 파일 분석에 사용 : Symbol 파일

- 모든 정보가 들어있기에 유출되면 큰일남

- 파일 위치: ../x64/Debug

728x90

'시스템⚙️ > 이론' 카테고리의 다른 글

프로그램의 메모리구조  (5) 2024.09.21
기억장치  (0) 2024.09.13
프로그래밍 언어  (1) 2024.08.28
버전 관리 시스템(Version Control System)  (1) 2024.08.27
컴퓨터 시스템  (0) 2024.08.27

+ Recent posts