[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++

Categories:

Updated:

Leave a comment