출시·고도화 중
C++ 안내서 · 1/6
C++는 소스 코드를 컴파일러로 번역해 실행 파일을 만드는 언어입니다. 인터프리터 언어처럼 파일을 바로 실행하지 않고, 컴파일 → 링크 → 실행 순서를 거칩니다. 이 장에서는 컴파일러를 설치하고, 첫 프로그램을 빌드하고, 표준 버전과 경고 옵션을 고르고, CMake로 작은 프로젝트를 만드는 데까지 다룹니다.
C++ 컴파일러는 여러 가지가 있으며, 운영체제마다 주로 쓰는 것이 다릅니다.
| 컴파일러 | 주 사용 환경 | 설치 방법 |
|---|---|---|
GCC (g++) | Linux, MinGW-w64를 통한 Windows | 배포판 패키지 관리자 |
Clang (clang++) | macOS, Linux, Windows | Xcode Command Line Tools 또는 패키지 관리자 |
MSVC (cl) | Windows | Visual Studio 또는 Build Tools의 "C++를 사용한 데스크톱 개발" 워크로드 |
Linux와 macOS에서는 다음 명령으로 설치합니다.
# Debian / Ubuntu: g++, make 등 기본 빌드 도구
sudo apt install build-essential
# Fedora
sudo dnf install gcc-c++
# macOS: clang++ 와 기본 도구
xcode-select --install
# 설치 확인
g++ --version
clang++ --versionWindows에서 MSVC를 쓰려면 Visual Studio 설치 프로그램에서 C++ 워크로드를 고른 뒤, 시작 메뉴의 Developer Command Prompt 또는 Developer PowerShell을 엽니다. 이 창에서만 cl 명령이 경로에 잡혀 있습니다.
hello.cpp 파일을 만들고 다음 내용을 적습니다.
#include <iostream>
int main() {
std::cout << "Hello, C++!\n";
return 0;
}#include <iostream>은 표준 입출력 라이브러리의 선언을 가져옵니다. 모든 C++ 프로그램은 main 함수에서 시작하며, main이 0을 돌려주면 정상 종료를 뜻합니다. std::cout은 표준 출력이고 << 연산자로 값을 흘려 보냅니다.
# GCC
g++ -std=c++20 -Wall -Wextra -o hello hello.cpp
./hello
# Clang
clang++ -std=c++20 -Wall -Wextra -o hello hello.cpp
./helloMSVC에서는 옵션 표기가 다릅니다.
cl /std:c++20 /EHsc /W4 hello.cpp
hello.exe/EHsc는 표준 C++ 예외 처리 방식을 켜는 옵션으로, 표준 라이브러리를 쓰는 코드라면 거의 항상 붙입니다.
C++는 대략 3년마다 새 표준이 나옵니다. C++11에서 현대적인 문법이 크게 늘었고, 이후 C++14, C++17, C++20, C++23이 이어졌습니다. 컴파일러마다 기본 표준이 다르므로 원하는 버전을 명시하는 습관이 좋습니다.
-std=c++17: 구조적 바인딩, std::optional, std::filesystem 등을 쓸 수 있습니다.-std=c++20: concepts, ranges, std::format, 모듈 등이 들어갑니다. 새 프로젝트의 무난한 선택입니다.-std=c++23: std::expected, std::print 등이 추가됩니다. 컴파일러와 표준 라이브러리 지원 정도를 먼저 확인합니다.GNU 확장까지 켜는 -std=gnu++20도 있지만, 이식성을 생각하면 -std=c++20을 권합니다.
C++ 컴파일러는 기본적으로 많은 실수를 조용히 넘어갑니다. 경고를 켜면 초기화하지 않은 변수, 부호 있는/없는 정수 비교, 쓰지 않는 변수 같은 문제를 일찍 잡을 수 있습니다.
-Wall -Wextra -Wpedantic을 기본으로 켜고, 필요하면 -Werror로 경고를 오류로 다룹니다./W4를 쓰고, 필요하면 /WX로 경고를 오류로 다룹니다.-g(MSVC는 /Zi)로 디버그 정보를 넣고, 배포 빌드는 -O2(MSVC는 /O2)로 최적화합니다.파일이 몇 개만 넘어가도 명령을 손으로 치기는 번거롭습니다. CMake는 C++ 프로젝트에서 가장 널리 쓰는 빌드 설정 도구로, CMakeLists.txt를 읽어 Ninja, Make, Visual Studio 같은 실제 빌드 시스템의 파일을 만들어 줍니다.
cmake_minimum_required(VERSION 3.20)
project(hello LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)
add_executable(hello hello.cpp)
if(MSVC)
target_compile_options(hello PRIVATE /W4)
else()
target_compile_options(hello PRIVATE -Wall -Wextra -Wpedantic)
endif()hello.cpp와 같은 폴더에 위 파일을 두고 빌드합니다. 빌드 결과는 소스와 섞이지 않도록 build 폴더에 둡니다.
cmake -S . -B build
cmake --build build
./build/helloVisual Studio 생성기를 쓰면 실행 파일이 build/Debug/hello.exe처럼 구성 이름 폴더 아래에 생깁니다. Visual Studio, VS Code(CMake Tools 확장), CLion은 모두 CMakeLists.txt를 바로 열어 프로젝트로 인식합니다.
-std=c++20처럼 표준 버전을 명시하고, -Wall -Wextra 또는 /W4로 경고를 켭니다.
댓글 0개
로그인 · 로그인하면 댓글을 남길 수 있습니다.
첫 댓글을 남겨 보세요.