Menu
Coddy logo textTech

C++ 빌드 및 컴파일

Coddy C++ 여정의 객체 지향 프로그래밍 섹션에 포함된 레슨 — 104개 중 2번째.

C++는 전처리(Preprocessing), 컴파일(Compilation), 링크(Linking)의 세 단계로 빌드됩니다.

1. 전처리(Preprocessing)#include 지시문이 해석되어, 헤더 내용을 소스 파일에 복사합니다.

#include <iostream>    // 시스템 헤더
#include "my_file.h"   // 사용자 정의 헤더

2. 컴파일 — 각 .cpp 파일은 독립적으로 오브젝트 파일(.o)로 컴파일됩니다

// math_utils.cpp는 math_utils.o로 컴파일됩니다
// main.cpp는 main.o로 컴파일됩니다

3. 링킹(Linking) — 오브젝트 파일들이 최종 실행 파일로 결합됩니다

// math_utils.o + main.o → program.exe

헤더 파일은 무엇이 존재하는지 선언합니다(프로토타입). .cpp 파일은 실제 구현을 제공합니다. 링커는 main.cpp의 호출을 다른 .cpp 파일의 구현과 연결합니다.

challenge icon

챌린지

중급

헤더 파일 math_utils.h는 두 개의 함수를 선언합니다. math_utils.cpp에 이 함수들을 구현하세요:

  • doubleValue(int x)x * 2를 반환합니다
  • square(int x)x * x를 반환합니다

.cpp 파일에 헤더 파일을 포함해야 합니다.

치트 시트

C++ 빌드는 전처리(Preprocessing), 컴파일(Compilation), 링킹(Linking)의 세 단계로 이루어집니다.

전처리(Preprocessing)#include 지시문이 해석되어, 헤더 파일의 내용이 소스 파일로 복사됩니다:

#include <iostream>    // 시스템 헤더
#include "my_file.h"   // 사용자 정의 헤더

컴파일(Compilation) — 각 .cpp 파일은 독립적으로 오브젝트 파일(.o)로 컴파일됩니다:

// math_utils.cpp는 math_utils.o로 컴파일됩니다
// main.cpp는 main.o로 컴파일됩니다

링킹(Linking) — 오브젝트 파일들이 결합되어 최종 실행 파일이 생성됩니다:

// math_utils.o + main.o → program.exe

헤더 파일은 무엇이 존재하는지 선언합니다(프로토타입). .cpp 파일은 실제 구현을 제공합니다. 링커는 main.cpp에서의 호출을 다른 .cpp 파일에 있는 구현과 연결합니다.

직접 해보기

#include <iostream>
#include "math_utils.h"

int main() {
    int num;
    std::cin >> num;
    
    std::cout << "Double: " << doubleValue(num) << std::endl;
    std::cout << "Square: " << square(num) << std::endl;
    std::cout << "Build successful" << std::endl;
    return 0;
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

객체 지향 프로그래밍의 모든 레슨