C++ 프로그램은 소스 파일을 번역해 실행 파일을 만드는 과정에서 시작한다. 화면에 한 줄을 찍는 프로그램도 전처리, 컴파일, 링크를 거친다.

C++ 1. 프로그램이 만들어지고 실행되기까지의 핵심 흐름도
그림. C++ 코드는 세 번역 단계를 거쳐 실행 파일이 된다.

가장 짧은 프로그램

#include <iostream>

int main() {
    std::cout << "안녕, C++\n";
    return 0;
}

`#include <iostream>`는 표준 입출력 선언을 끌어온다. `std::cout`는 표준 출력 스트림이고, `<<`는 그 스트림에 값을 넣는다. `\n`은 줄을 바꾼다.

번역은 세 단계다

전처리는 `#include`와 매크로를 풀어 번역 단위를 만든다. 컴파일러는 그 단위를 목적 파일로 바꾸고, 링커는 목적 파일과 라이브러리를 묶어 실행 파일을 만든다. 선언은 봤는데 정의가 없으면 링크 단계에서 실패하는 일이 많다.

단계하는 일
전처리헤더를 포함하고 매크로를 치환한다.
컴파일문법과 타입을 검사하고 목적 파일을 만든다.
링크함수 정의를 연결해 실행 파일을 만든다.

빌드 명령은 도구마다 다르다. g++이나 clang++로 `g++ -std=c++20 -Wall -Wextra -o hello hello.cpp`처럼 표준과 경고를 켜 두고 시작하는 습관이 이후 30편 내내 도움이 된다.