[C++] 프로그램 개발 과정
프로그램 개발 과정
소스 코드 편집 → 빌드 → 실행 과정을 알아보자.
소스 코드 편집
- C++ 문법에 따라 프로그램을 작성하고
.cpp
확장자의 소스 파일에 저장한다. .h
확장자의 헤더 파일은 클래스 선언이나 함수 원형 등 다른 파일에 포함시킬 공통 인터페이스를 정의한다.- 헤더는 여러 소스 파일에서 공유되며, 컴파일러에게 “이런 함수나 클래스가 있다”는 정보를 제공한다.
빌드(build)
소스 코드는 빌드 과정을 거쳐 컴퓨터에서 바로 실행될 수 있는 실행 코드로 변환된다.
- 전처리(preprocessing)
#include
로 연결된 헤더 파일의 내용을 소스 코드에 삽입한다.#define
등 전처리 지시문을 처리하고, 매크로를 실제 값으로 치환한다.- 컴파일을 위한 최종 소스 파일을 만드는 과정이다.
- 컴파일(compile)
- 컴파일러가 최종 소스 파일을 기계어로 변환하여 목적 파일(
.obj
)로 만든다. - 만약 소스 코드에 문법적인 오류가 발견되면 에러(error)나 경고(warning) 메시지를 출력한다.
- 컴파일러가 최종 소스 파일을 기계어로 변환하여 목적 파일(
- 링크(link)
- 여러 개의 목적 파일(
.obj
)과 정적 라이브러리(.lib
)를 결합하여 하나의 실행 파일(.exe
)을 만든다. - 사용된 함수나 변수를 찾지 못하거나 모호할 경우(여러 개 존재) 링크 오류가 발생한다.
- 여러 개의 목적 파일(
실행 과정
실행 과정에는 공유 라이브러리를 연결하는 과정이 필요하고, 디버깅 과정이 필요할 수도 있다.
- 로드(load)
- 실행 시 동적 라이브러리(DLL)를 메모리에 적재하고 연결한다.
- DLL(Dynamic Linking Library): 실행 파일에 포함되지 않고 컴퓨터에서 공유하여 사용한다.
- 실행 파일의 크기를 줄이고 효율성을 높이기 위해 사용된다.
- DLL 파일이 없을 경우 오류가 발생한다.
- 실행과 디버깅(debugging)
- 프로그램이 실행되면서 다음과 같은 오류가 발생할 수 있다.
- 실행 시간 오류(run time error): 배열 범위 초과, null 포인터 접근 등
- 논리 오류(logical error): 알고리즘이 의도와 다르게 작동하는 경우
- 문제 해결을 위해 디버깅 도구를 사용하여 흐름을 추적하고 변수 값을 확인한다.
- 프로그램이 실행되면서 다음과 같은 오류가 발생할 수 있다.
요약
소스 작성(.cpp
/.h
) → 전처리 (#include
, #define
) → 컴파일(목적 파일 변환 .obj
) → 실행(DLL 연결) → 디버깅 및 테스트
출처 게임으로 배우는 C++
Leave a comment