본문 바로가기

[Visual Studio Code] C++ 빌드/실행/디버깅하기

by rudals.kim 2022. 1. 23. 댓글 개
반응형
아래 방법은 윈도우10 + Visual Studio 2019가 설치되어 있는 환경에서 테스트 되었습니다.

 

제 경우 C#/C++/MFC 등 여러 가지 언어로 컴파일하는 용도로 Visual Studio 2019 Community 버전을 설치하여 사용하고 있습니다. 그러나 Visual Studio IDE가 덩치가 크고 무거워서 대신에 Visual Studio Code를 사용하여 C++를 사용할 수 있는 방법을 찾아보니 MS에서 관련 문서를 제공해 주는 것을 알게 되었고 문서를 참고하여 테스트해 보았습니다.

 

Configure Visual Studio Code for Microsoft C++

Configure the C++ extension in Visual Studio Code to target Microsoft C++ on Windows.

code.visualstudio.com

아래와 같이 C++ 테스트용 폴더를 생성하고, 생성된 폴더를 Visual Studio Code에서 현재 작업 프로젝트 폴더로 엽니다.

mkdir helloworld
cd helloworld
code .

 

Visual Studio Code가 실행되었다면 Extension(단축키 : Ctrl + Shift + X) 창을 연후 C/C++ 키워드로 검색을 하여 아래 C/C++ 확장 프로그램을 설치합니다.

왼쪽의 EXPLORER 아이콘을 선택하면 현재 프로젝트 폴더가 나오는데 아직 아무 파일도 생성되지 않은 빈 폴더입니다.

새 파일인 helloworld.cpp를 생성한 다음 아래 테스트용 C++ 예제 소스 코드를 적용하여 저장합니다.

테스트용 C++ 예제 소스 코드입니다.

#include <iostream>
#include <vector>
#include <string>

using namespace std;

int main()
{
    vector<string> msg {"Hello", "C++", "World", "from", "VS Code", "and the C++ extension!"};

    for (const string& word : msg)
    {
        cout << word << " ";
    }
    cout << endl;
}

 

다음 Command Palette(단축키 : Ctrl + Shift + P)를 실행하여 'tasks configure default build task'로 검색을 하여 실행한 후 나오는 다음 창에서 C/C++: cl.exe build active file을 선택합니다.

(CPP 소스코드가 열린 창에서 실행하셔야 합니다. CPP 소스창이 아닌 곳에서 실행 시 다른 메뉴가 나오니 주의하시기 바랍니다.)

그러면 아래와 같이 .vscode/tasks.json파일이 생성됩니다.

Command Palette에서 'run build task'로 검색하여 빌드해 봅니다.

cl.exe관련 에러 메시지인데 깨져서 무슨 메세지인지는 모르겠으나 대충 패스에서 cl.exe를 발견하지 못하여 나온 메시지인 것 같습니다.

tasks.json 파일과 아래 내용을 비교 후 추가/변경된 내용을 적용합니다. 수정된 부분은 빌드 전에 VsDevCmd.bat 파일을 실행시켜 먼저 Visual Studio 2019의 CLI 환경을 만들어 주는 부분입니다.

{
    "version": "2.0.0",
    "windows": {
        "options": {
            "shell": {
                "executable": "cmd.exe",
                "args": [
                    "/C",
                    "\"C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/Tools/VsDevCmd.bat\"",
                    "&&"
                ]
            }
        }
    },
    "tasks": [
        {
            "type": "shell",
            "label": "C/C++: cl.exe build active file",
            "command": "cl.exe",
            "args": [
                "/Zi",
                "/EHsc",
                "/nologo",
                "/Fe:",
                "${fileDirname}\\${fileBasenameNoExtension}.exe",
                "${file}"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$msCompile"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "compiler: cl.exe"
        }
    ]
}

다시 CPP 파일을 연 후 'run build task'를 실행해 봅니다.

이전과 달리 에러없이 빌드가 되고 왼쪽에 빌드시 생성된 파일들이 추가되어졌습니다.

빌드 메시지가 나온 창을 닫은 후 새로 터미널 창을 열어서 빌드된 파일을 실행해 보니 정상적으로 실행이 됩니다.

Visual Studio Code를 사용하여 C++ 파일의 빌드 및 실행을 테스트해 보았습니다.

다음은 디버깅 테스트를 해 보기 위해 약간의 코드를 추가하였습니다.

코드를 작성 후 F5 키를 눌러 디버깅을 해 봅니다.

윈도우 환경이므로 C++ (Windows) -> cl.exe를 선택합니다.

왼쪽 파일 창에 launch.json 파일이 생성됩니다.

마우스로 줄번호 왼쪽을 클릭하여 Breakpoint를 걸어준 후 F5 키를 눌러 디버깅을 해 봅니다.

Breakpoint에서 정상적으로 프로그램이 멈추고 왼쪽에 local 변수의 값과 Call Stack 등 디버깅에 필요한 정보를 보여줍니다.

이상 Visual Studio Code를 사용하여 C++ 빌드/실행/디버깅을 해 보았습니다.

번거로운 것 같지만 한번 설정해 두면 간단한 프로그램은 Visual Studio Code를 사용하여 빌드 및 디버깅할 수 있어서 편리할 것 같습니다.

반응형

댓글