제가 대학교 1학년 때 [명품 C++ Programming] 교재로 진행되는 C++ 수업에서 배운 내용을 교재와 ppt를 중심으로 정리한 내용입니다.
(2022.9 ~ 2022.12)
당시에 공부를 위해서 HWP 파일로 정리해 놓은 것을 그대로 올립니다.
🍑C++ 프로그램 개발 과정
- 소스 프로그램 작성 → 컴파일 → 링킹 → 실행 파일(일단 실행되면 독립적 시행이 가능하기에 실행되는 동안 소스파일이나 목적파일이 필요없음)
C++ 소스 프로그램 작성
- C++ 소스 프로그램은 표준 확장자가
cpp인 텍스트 파일 → 아무 텍스트 편집기를 이용하여도 작성가능.
- C++ 통합 개발 환경(소스편집, 컴파일, 링킹, 실행, 디버깅 등)을 제공하는 소프트웨어 이용 추천 → 대부분이 지원.
컴파일
- C++ 소스 프로그램이 문법에 맞게 작성되었는지 검사하고 기계어를 가진 목적 파일로 변환.
- 컴파일러를 통해서
cpp → obj
- 문법에 맞지 않게 작성된 코드를 발견하면 컴파일 오류 발생 시킴
링킹
- 어떤 목적 파일이 참조하는 것들 (C++ 표준 라이브러리, 다른 목적 파일 속의 함수, 객체, 데이터)을 포함하여 실행에 필요한 모든 기계어 코드를 확보하여 하나의 실행 파일로 만드는 과정.
- 컴파일 후 목적파일이 생성되었다고 하더라도 바로 실행 불가하기 때문.
- C++ 소스의 목적 파일에는 목적 파일이 참조하는 것에 대한 참조 표시만 존재함 (코드포함 X)
프로그램 실행과 디버깅
- 링킹의 과정에 의해 생성된 실행 파일(
exe)은 컴퓨터에서 바로 실행 가능
- 프로그램에 논리적 오류가 있어 실행 중 오류 발생 가능 → 프로그램의 비정상 종료 혹은 원하는 결과 산출 안됨
- 디버깅 : 프로그램 내에 오류 위치를 발견하거나, 문제의 원인을 찾아 수정하는 과정
▶ 컴파일러를 만드는 회사에서 함께 공급해주는 소프트웨어인 디버거를 통해 디버깅
- 소스 레벨 디버깅 : C++ 소스를 한 라인 단위로 실행시키면서 변수 값의 변화를 관찰하며 오류를 발견.
- 원하는 소스 라인에 정지점을 설정하여 프로그램이 정상적 경로로 실행되는지 관찰