Post

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을 설치해 주자.

Image

설치가 완료되면 좌측 패널에 CPH Judge가 추가되는데 Create Problem을 누르면 사용자 입출력을 넣을 수 있는 화면으로 전환된다.

Image


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

Image

Ctrl + Alt + B 단축키를 누르면 소스 코드를 빌드하고 Test Case 실행까지 한 번에 해준다.
사용자가 입력한 Test Case의 Expected Output과 소스 코드가 출력한 Received Output이 동일한지도 표시해 준다.

Image


gdb 연결


추가로 gdb를 연결하기 위해, 먼저 아래 명령어를 사용하여 gdb를 설치해 준다.

1
sudo apt install gdb

그리고 tasks.json 파일만 설정해 주면 된다.

.cpp 파일을 열어놓고 Command Palette에서 Tasks: Configure Default Build Task를 선택한 다음, 컴파일러만 적절히 골라주면 tasks.json 파일을 자동으로 생성할 수 있다.

Image

Image

위에서와 같이 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 단축키로 빌드를 할 수 있다.

Image

뿐만 아니라 F5 단축키로 gdb가 연결된 Debugging도 바로 시작할 수 있다.

Image


앞으로 많은 문제를 풀면서, 알고리즘 문제 풀이 실력을 향상시켜 나가보자.


This post is licensed under CC BY 4.0 by the author.

© sirius-mhlee. Some rights reserved.

Using the Chirpy theme for Jekyll.