빌드과정
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
'시스템⚙️ > 이론' 카테고리의 다른 글
프로그램의 메모리구조 (5) | 2024.09.21 |
---|---|
기억장치 (0) | 2024.09.13 |
프로그래밍 언어 (1) | 2024.08.28 |
버전 관리 시스템(Version Control System) (1) | 2024.08.27 |
컴퓨터 시스템 (0) | 2024.08.27 |