개발 환경 설정
이제 C++이 어떤 언어인지, 그리고 어디에 활용되는지 개괄적으로 이해하셨으리라 생각합니다.
이제부터는 우리가 C++ 코드를 직접 작성하고 실행하기 위한 준비를 할 차례입니다.
건축가가 건물을 짓기 위해 설계 도구와 자재를 준비하듯이, 프로그래머도 코드를 작성하기 위한 적절한 도구와 환경이 필요합니다.
이 장에서는 C++ 개발을 위한 필수적인 도구들을 알아보고, 여러분의 컴퓨터에 개발 환경을 설정하는 과정을 상세히 안내해 드릴 것입니다.
C++ 개발을 위한 핵심 도구들
C++ 코드를 작성하고 실행하기 위해서는 크게 세 가지 핵심 도구가 필요합니다.
- 텍스트 에디터 (Text Editor): 소스 코드를 작성하는 도구입니다. 메모장처럼 단순한 것부터, 코드 자동 완성, 문법 강조 등 다양한 편의 기능을 제공하는 전문 에디터까지 폭넓은 선택지가 있습니다.
- 컴파일러 (Compiler): 우리가 작성한 C++ 소스 코드는 컴퓨터가 직접 이해할 수 있는 언어가 아닙니다. 컴파일러는 사람이 이해할 수 있는 C++ 코드를 컴퓨터가 이해하고 실행할 수 있는 기계어(Machine Code)로 번역해 주는 역할을 합니다. 이 과정이 없으면 우리의 코드는 그저 텍스트 파일에 불과합니다.
- 링커 (Linker): 컴파일러가 생성한 여러 개의 목적 파일(Object File)들을 하나로 묶어 최종 실행 가능한 프로그램으로 만들어주는 역할을 합니다. 필요에 따라 외부 라이브러리들도 연결합니다.
이 세 가지 도구는 대부분 통합 개발 환경(IDE, Integrated Development Environment) 이라는 형태로 하나로 묶여 제공됩니다.
IDE는 코드 작성, 컴파일, 디버깅(오류 수정), 빌드(실행 파일 생성) 등 개발의 전 과정을 한 곳에서 편리하게 수행할 수 있도록 지원합니다.
C++ 컴파일러 소개
C++ 프로그램을 실행하기 위해서는 먼저 소스 코드를 기계어로 변환해야 합니다.
이 작업을 수행하는 것이 컴파일러입니다.
주요 C++ 컴파일러는 다음과 같습니다.
GCC (GNU Compiler Collection)
- 가장 널리 사용되는 오픈 소스 컴파일러
- Linux, macOS, Windows(MinGW) 등 다양한 플랫폼 지원
- 명령어 예 :
g++ -o myprogram myprogram.cpp
Clang
- LLVM 프로젝트의 일부로 개발된 컴파일러
- 빠른 컴파일 속도와 명확한 오류 메시지로 유명
- Apple의 Xcode에 기본 컴파일러로 채택
- 명령어 예 :
clang++ -o myprogram myprogram.cpp
Microsoft Visual C++ Compiler
- Windows 환경에 최적화된 컴파일러
- Visual Studio에 포함되어 있음
- 명령어 예 :
cl myprogram.cpp
통합 개발 환경 (IDE) 소개
IDE는 코드 편집, 컴파일, 디버깅 등의 기능을 통합적으로 제공하는 소프트웨어입니다.
주요 C++ IDE는 다음과 같습니다.
Visual Studio
- Microsoft에서 개발한 강력한 IDE
- 광범위한 기능과 확장성 제공
- 무료 버전(Community Edition) 사용 가능
Visual Studio Code
- 경량화된 코드 에디터이지만 확장을 통해 IDE 기능 구현 가능
- 다양한 언어 지원, 크로스 플랫폼
- C++ 개발을 위한 확장 팩 제공
CLion
- JetBrains사에서 개발한 크로스 플랫폼 C/C++ IDE
- 강력한 코드 분석 및 리팩토링 도구 제공
- 유료이지만 학생은 무료로 사용 가능
Eclipse CDT
- 오픈 소스 IDE
- 풍부한 플러그인 생태계
- 대규모 프로젝트 관리에 적합
개발 환경 설정 단계 (VSCode)
Visual Studio Code 설치
- https://code.visualstudio.com 에서 다운로드 및 설치
C++ 확장 팩 설치
- VS Code 내에서 확장(Extensions) 탭 열기
- "C/C++" 검색 후 Microsoft의 확장 팩 설치
MinGW 설치 (Windows 환경)
- MSYS2 페이지에서 최신 설치 프로그램을 다운로드하거나 하이퍼링크를 통해 바로 다운로드할 수 있습니다.
- 설치 프로그램을 실행하고 설치 마법사의 단계를 따라 진행합니다. (win10 64비트 이상)
- msys2를 실행하고 아래 명령어를 입력합니다.
pacman -S --needed base-devel mingw-w64-ucrt-x86_64-toolchain
Enter
를 눌러 설치를 진행합니다.
Enter
를 눌러 툴체인 그룹의 기본 패키지 설치를 수락합니다.
환경 변수 설정
- 시스템 환경 변수 편집 > 환경 변수 > Path > 편집
- MinGW의 bin 폴더 경로 추가
C:\msys64\ucrt64\bin
프로젝트 폴더 생성 및 설정
- 새 폴더 생성 후 VS Code로 열기
.vscode
폴더 내에c_cpp_properties.json
,tasks.json
및launch.json
파일 생성 및 설정- (선택)
settings.json
및extensions.json
파일 생성 및 설정 - 해당 작업이 번거로우면 템플릿 다운받기
{
"configurations": [
{
"name": "Win32",
"includePath": ["${workspaceFolder}/**"],
"defines": ["_DEBUG", "UNICODE", "_UNICODE"],
"compilerPath": "C:/msys64/ucrt64/bin/g++.exe",
"cStandard": "c17",
"cppStandard": "c++20",
"intelliSenseMode": "windows-gcc-x64"
}
],
"version": 4
}
{
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: g++.exe 활성 파일 빌드",
"command": "C:\\msys64\\ucrt64\\bin\\g++.exe",
"args": [
"-fdiagnostics-color=always",
"-g",
"${fileDirname}/*.cpp",
"-o",
"${workspaceFolder}/Debug/${fileBasenameNoExtension}.exe"
],
"problemMatcher": ["$gcc"],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "디버거에서 생성된 작업입니다."
}
],
"version": "2.0.0"
}
{
"configurations": [
{
"name": "C/C++: g++.exe 활성 파일 빌드 및 디버그",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceFolder}/Debug/${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${fileDirname}",
"environment": [],
"externalConsole": false,
"internalConsoleOptions": "neverOpen",
"MIMode": "gdb",
"miDebuggerPath": "C:/msys64/ucrt64/bin/gdb.exe",
"setupCommands": [
{
"description": "gdb에 자동 서식 지정 사용",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "디스어셈블리 버전을 Intel(으)로 설정",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
],
"preLaunchTask": "C/C++: g++.exe 활성 파일 빌드"
}
],
"version": "2.0.0"
}
{
"[cpp]": { "editor.defaultFormatter": "ms-vscode.cpptools" },
"terminal.integrated.defaultProfile.windows": "PowerShell",
"github.copilot.editor.enableAutoCompletions": false,
"workbench.colorCustomizations": {
"terminalCursor.foreground": "#0064FF",
"terminal.foreground": "#ffffff",
"terminal.ansiCyan": "#000000"
},
"files.exclude": {
".vscode": true
}
}
{
"recommendations": ["PKief.material-icon-theme", "ms-vscode.cpptools"],
"unwantedRecommendations": ["ms-vscode.cpptools-extension-pack"]
}
첫 번째 프로그램 작성 및 실행
새 파일 생성 (main.cpp)
#include <iostream>
int main() {
std::cout << "Hello, C++ World!" << std::endl;
return 0;
}
파일 저장 후 터미널에서 다음 명령어 실행
g++ -o hello main.cpp
./hello