2025. 9. 7. 01:49ㆍLanguages/C++

I. MinGW 설치 방법
1. 다음 페이지로 이동한다: https://code.visualstudio.com/docs/languages/cpp#_example-install-mingwx64-on-windows
이후 "this direct link to MinGW Installer"라는 링크를 클릭해 MinGW 설치 파일을 다운로드 받은 뒤 실행한다.

2. 다운로드 받은 "msys2-x86_64-20241208.exe" 따위의 설치 파일을 실행한 뒤 디폴트 설치 위치에 해당 파일을 실행한다.

3. 설치된 MSYS2가 실행된 직후 다음 명령을 입력해 관련 툴체인(Toolchain)을 전부 설치한다. 기본 설정값이 "all"이므로 엔터와 "Y"로 동의 의사만 입력하면 설치가 정상적으로 진행된다.
pacman -S --needed base-devel mingw-w64-ucrt-x86_64-toolchain


4. 설치가 완료된 직후 다음과 같이 gcc 버전 정보를 출력하면,
g++ -v
아래와 같이 "gcc version 14.2.0" 따위의 현재 gcc 버전이 출력되게 된다.

II. C++ 개발을 위한 VSCode 설정 방법
이제 VSCode에서 방금 설치한 gcc를 C++ 코드를 컴파일할 용도의 컴파일러로 설정해야 한다.
A. 컴파일러 경로 변경
5. "Ctrl + Shift + P"를 눌러 커맨드 팔레트(Command Palette)를 실행한 다음 "C/C++: Edit Configurations (UI)" 선택한다.

6. 다음으로 "Compiler path" 항목으로 이동해 "C:/msys64/ucrt64/bin/g++.exe" 경로를 선택해서 방금 설치한 MSYS2의 gcc 컴파일러 경로를 지정한다.

7. 위와 같이 컴파일러 경로를 변경하고 나면 VSCode의 Output 창에 인텔리센스모드(IntelliSenseMode)의 경로가 기존의 "windows-msvc-x64"에서 "windows-gcc-x64"로 변경되었다는 로그 메시지를 확인할 수 있다.

B. 인텔리센스 모드 변경
8. 하지만 로그 메시지와 별개로 인텔리센스모드(IntelliSenseMode)는 해당 설정 창에서 다시 "windows-gcc-x64"로 직접 지정해줘야 한다.

C. C/C++ 표준 설정
9. 또한 필요한 경우 선택적으로 C 표준과 C++ 표준을 선택할 수도 있다.

지금까지 컴파일러 경로, 인텔리센스 모드, C/C++ 표준 설정 등은 전부 아래 경로에 "c_cpp_properties.json"이라는 이름의 파일로 VSCode에 저장 및 적용이 된 것이다.
.vscode\c_cpp_properties.json
참고로 해당 파일의 내용은 다음과 같다.
{
"configurations": [
{
"name": "Win32",
"includePath": ["${workspaceFolder}/**"],
"defines": ["_DEBUG", "UNICODE", "_UNICODE"],
"windowsSdkVersion": "10.0.22621.0",
"compilerPath": "C:/msys64/ucrt64/bin/g++.exe",
"cStandard": "c17",
"cppStandard": "c++17",
"intelliSenseMode": "windows-gcc-x64"
}
],
"version": 4
}
D. 디버거(Debugger)와 구성(Configuration) 선택 및 코드 실행
10. 이제 "F5 (Start Debugging)"로 코드를 실행해서 다음과 같이 "C++ (GDB/LLDB)"를 선택한다.

11. 그리고 다음과 같이 "C/C++: g++.exe build and debug active file"을 구성(configuration)으로서 선택한다.

12. 이제 하단의 출력 창들 가운데 "터미널(Terminal)" 창으로 이동하면 "hello, world"라는 문자열이 gcc로의 컴파일을 통해 성공적으로 출력된 것을 확인할 수 있다.

여기까지 디버거와 구성 등은 전부 아래 경로에 "tasks.json"이라는 이름의 파일로 VSCode에 저장 및 적용이 된 것이다.
.vscode\tasks.json
참고로 해당 파일의 내용은 다음과 같다.
{
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: g++.exe build active file",
"command": "C:/msys64/ucrt64/bin/g++.exe",
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "C:/msys64/ucrt64/bin"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "Task generated by Debugger."
}
],
"version": "2.0.0"
}
E. 디버그 구성(Debugger Configuration)
13. 다음으로 디버그 구성을 추가할 차례다. 다음과 같이 다시 커맨드 팔레트를 열어 "C/C++: Add Debug Configuration"를 선택해 디버그 구성을 추가한다.

14. 이번에도 g++ (gcc)를 선택한다.

여기까지 디버거와 구성 등은 전부 아래 경로에 "tasks.json"이라는 이름의 파일로 VSCode에 저장 및 적용이 된 것이다.
.vscode\launch.json
참고로 해당 파일의 내용은 다음과 같다.
{
"configurations": [
{
"name": "C/C++: g++.exe build and debug active file",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "C:/msys64/ucrt64/bin",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "C:\\msys64\\ucrt64\\bin\\gdb.exe",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
},
{
"description": "Set Disassembly Flavor to Intel",
"text": "-gdb-set disassembly-flavor intel",
"ignoreFailures": true
}
],
"preLaunchTask": "C/C++: g++.exe build active file"
}
],
"version": "2.0.0"
}
III. C++ 개발을 위한 VSCode 설정 테스트 방법
15. 이제 지금까지 고생해서 설정한 VSCode 설정을 테스트할 때다. 먼저 다음과 같이 간단한 C++ 소스코드 파일을 준비한다.
#include <cstdint>
#include <iostream>
using namespace std;
int32_t main()
{
cout << "hello, world" << endl;
return 0;
}
16. 그리고 cout 명령이 있는 줄(Line)에 "F9" 단축키를 눌러서 브레이크포인트(Breakpoint)를 추가한 다음, 해당 소스코드를 컴파일, 링킹한 다음 실행해서 다음과 같이 디버거가 해당 브레이크포인트에서 멈추고 정상적인 디버깅 동작을 수행할 수 있는지까지 확인하면 본 C/C++ 개발을 위한 MinGW 설치와 VSCode 설정에 대한 동적 테스트가 완료된다.

참고 자료
C/C++ for Visual Studio Code
Find out how to get the best out of Visual Studio Code and C++.
code.visualstudio.com
'Languages > C++' 카테고리의 다른 글
| [C++] Visual Studio에서 Address Sanitizer를 활성화해 배열 범위 외 참조 예외를 발생시키는 방법 (0) | 2025.09.14 |
|---|---|
| [C++] clang-format 설치 및 설정 방법 (0) | 2025.09.12 |
| [C++] VSCode 필수 확장(Extensions) 패키지 목록 (0) | 2025.09.05 |
| [C++] Visual Studio Code 설치 방법 (0) | 2025.09.05 |