Programming/C++

[Visual Studio Code] VS Code C / C++ 컴파일, 실행, 디버깅

728x90

보다 간단한 방법인 Code Runner 사용에 관한 글도 하단에 링크 달아두었습니다!

 

 

1. C / C++ 컴파일

컴파일러의 종류

  • gcc : C언어를 컴파일 할 수 있는 컴파일러
  • g++ : C++을 컴파일 할 수 있는 컴파일러

 

컴파일러 준비

터미널 > 기본 빌드 작업 구성

사용하는 언어에 따라 gcc 또는 g++을 선택합니다.

둘 다 사용하는 폴더의 경우 g++을 사용하면 좋습니다.

 

Ctrl +  Shift + B를 누르면 '빌드 작업을 찾을 수 없다'는 메시지와 함께 빌드 작업 구성을 선택할 수 있습니다.

이어서, '템플릿에서 tasks.json 파일 만들기'를 선택합니다.

그리고 'Others 임의의 외부 명령을 실행하는 예'를 선택하면 tasks.json 파일이 만들어집니다.

 

tasks.json 파일의 내용을 아래와 같은 내용으로 교체합니다.

{
    "version": "2.0.0",
    "runner": "terminal",
    "type": "shell",
    "echoCommand": true,
    "presentation": {
        "reveal": "always"
    },
    "tasks": [
        //C++ 컴파일
        {
            "label": "save and compile for C++",
            "command": "g++",
            "args": [
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "group": "build",
            //컴파일시 에러를 편집기에 반영
            //참고:   https://code.visualstudio.com/docs/editor/tasks#_defining-a-problem-matcher
            "problemMatcher": {
                "fileLocation": [
                    "relative",
                    "${workspaceRoot}"
                ],
                "pattern": {
                    // The regular expression. 
                    //Example to match: helloWorld.c:5:3: warning: implicit declaration of function 'prinft'
                    "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning error):\\s+(.*)$",
                    "file": 1,
                    "line": 2,
                    "column": 3,
                    "severity": 4,
                    "message": 5
                }
            }
        },
        //C 컴파일
        {
            "label": "save and compile for C",
            "command": "gcc",
            "args": [
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "group": "build",
            //컴파일시 에러를 편집기에 반영
            //참고:   https://code.visualstudio.com/docs/editor/tasks#_defining-a-problem-matcher
            "problemMatcher": {
                "fileLocation": [
                    "relative",
                    "${workspaceRoot}"
                ],
                "pattern": {
                    // The regular expression. 
                    //Example to match: helloWorld.c:5:3: warning: implicit declaration of function 'prinft'
                    "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning error):\\s+(.*)$",
                    "file": 1,
                    "line": 2,
                    "column": 3,
                    "severity": 4,
                    "message": 5
                }
            }
        },
        // // 바이너리 실행(Windows)
        {
            "label": "execute",
            "command": "cmd",
            "group": "test",
            "args": [
                "/C",
                "${fileDirname}\\${fileBasenameNoExtension}"
            ]
        }
    ]
}

 

이제 단축키를 설정하여 C / C++ 컴파일을 간편하게 실행할 수 있도록 하겠습니다.

파일 > 기본 설정 > 바로가기 키

 

다음 버튼을 눌러 keybindings.json 파일을 열어줍니다.

 

아래와 같은 내용으로 교체해주고 저장합니다.

[
    // 컴파일
    {
        "key": "ctrl+alt+c",
        "command": "workbench.action.tasks.build"
    },
    // 실행
    {
        "key": "ctrl+alt+r",
        "command": "workbench.action.tasks.test"
    }
]

 

컴파일

코드 파일로 돌아가서 빌드 단축키( Ctrl + Alt + C)를 누르고 C 또는 C++을 선택합니다.

다음 사진과 같이 터미널 창을 통해 빌드된 내용을 확인할 수 있으며,

에러가 발생했다면 에러 표시 또한 터미널에 나타납니다.

 

 

2. C / C++ 파일 실행

실행 단축키( Ctrl + Alt + R)을 누르면, 실행하는 'execute' 메뉴가 나타나고 이를 선택합니다

다음과 같이 터미널 창을 통해 결과를 확인할 수 있습니다!

 

3. C / C++ 디버깅

launch.json 생성 및 설정

실행 > 구성추가 메뉴로 진입한다.

선택화면에서 'C++ (GDB/LLDB)'를 선택하고 'g++.exe build and debug active file'을 선택한다.

다음과 같이 launch.json 파일이 자동으로 생성된다.

만약 printf, cout 과 같은 명령어들이 실행되는 것을 콘솔화면에서 확인하고 싶다면

externalConsole 값을 true로 설정해주면된다.

 

 

디버깅

메뉴에서 실행 > 디버깅 시작 을 선택하거나

F5를 누르면 디버깅을 시작할 수 있다.

 

 

중단점 설정

중단점을 설정함으로서,

디버깅을 중단점까지 진행하고, 디버깅을 중단점부터 시작할 수 있다.

 

원하는 위치에 마우스 좌클릭을 하면 중단점을 설정할 수 있다.

 

중단점에서 디버깅을 시작할 경우, 그 시점부터 단위 실행이 가능하다.

단위 실행을 통해 런타임 에러가 발생하는 지점을 찾을 수도 있다.

 

중단점을 우클릭하여 '중단점 편집'을 선택하면 중단점에 조건을 걸 수 있다.

조건문, 반복문에 중단점을 설정한 경우, 조건에 해당하는 시점에 중단되도록 설정할 수 있다.

 

 

 

 

💁 보다 간단한 방법인 Code Runner를 사용하는 방법도 업로드 했습니다!

https://codesyun.tistory.com/134

 

[C/C++] VS Code에서 Code Runner로 C / C++ 빌드 및 실행하기

Visual Studio Code에서는 Visual Studio과 같은 IDE와 달리 단순하게 빌드와 실행을 하기 어렵습니다 따라서 Code runner (코드 러너) 라는 확장 프로그램을 통해 편하게 실행할 수 있습니다! Code Runner가 지원

codesyun.tistory.com

 

 

 

 

 

 

728x90