WSL에 VS Code를 이용하여 C++ 알고리즘 문제 풀이 환경 설정하기
컴파일러와 Extension 설치
사실 WSL에 컴파일러와 ‘Competitive Programming Helper (cph)’라는 Extension만 설치해 주면 환경 설정의 대부분이 끝난다.
build-essential
메타 패키지를 통해 C++ 컴파일러를 설치하고,
1
sudo apt install build-essential
Visual Studio Code에 ‘Competitive Programming Helper (cph)’ Extension을 설치해 주자.
설치가 완료되면 좌측 패널에 CPH Judge
가 추가되는데 Create Problem
을 누르면 사용자 입출력을 넣을 수 있는 화면으로 전환된다.
Sanitizer 옵션 추가 및 Test Case 실행
컴파일러가 설치되어 있다면 ‘Competitive Programming Helper (cph)’ 가 알아서 빌드도 해준다.
C++ 표준
옵션과 알고리즘 문제 풀이에 도움이 되는 Sanitizer
옵션 정도만 빌드 옵션에 추가해 주면 된다.
‘Competitive Programming Helper (cph)’ Extension 설정의 Cph > Language > Cpp: Args
항목에 아래 옵션을 추가해 준다.
1
-std=c++17 -fsanitize=address -fsanitize=undefined -fno-sanitize-recover=all -fstack-protector
Ctrl + Alt + B
단축키를 누르면 소스 코드를 빌드하고 Test Case 실행까지 한 번에 해준다.
사용자가 입력한 Test Case의 Expected Output과 소스 코드가 출력한 Received Output이 동일한지도 표시해 준다.
gdb 연결
추가로 gdb
를 연결하기 위해, 먼저 아래 명령어를 사용하여 gdb
를 설치해 준다.
1
sudo apt install gdb
그리고 tasks.json
파일만 설정해 주면 된다.
.cpp
파일을 열어놓고 Command Palette
에서 Tasks: Configure Default Build Task
를 선택한 다음, 컴파일러만 적절히 골라주면 tasks.json
파일을 자동으로 생성할 수 있다.
위에서와 같이 tasks.json
파일의 args
항목에도 C++ 표준
및 Sanitizer
옵션을 추가해 준다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
{
"version": "2.0.0",
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: g++ build active file",
"command": "/usr/bin/g++",
"args": [
"-fdiagnostics-color=always",
"-std=c++17",
"-fsanitize=address",
"-fsanitize=undefined",
"-fno-sanitize-recover=all",
"-fstack-protector",
"-g",
"${file}",
"-o",
"${fileDirname}/${fileBasenameNoExtension}"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "compiler: /usr/bin/g++"
}
]
}
tasks.json
파일의 설정이 완료되었다. 이제 Ctrl + Shift + B
단축키로 빌드를 할 수 있다.
뿐만 아니라 F5
단축키로 gdb
가 연결된 Debugging도 바로 시작할 수 있다.
앞으로 많은 문제를 풀면서, 알고리즘 문제 풀이 실력을 향상시켜 나가보자.