[환경설정] VScode C언어 개발환경 세팅하기

VScode C언어 개발환경 세팅

VSCode 실행 후 확장 프로그램 설치

VScode에서 C언어를 사용하기 위해서는 몇 가지 세팅이 필요하다.
Visual Studio Code 실행 후 확장프로그램에서 C/C++을 검색하여 설치한다.
VScode-확장프로그램

MinGW설치

Visual Studio Code는 컴파일러 제공을 안하기 때문에 MinGW를 설치해야 한다.
아래의 SOURCEFPRGE 이미지를 눌러 접속하면 아래와 같이 나온다.
sourceforge.net
MinGW홈페이지
64비트 컴파일러를 사용하기 위해  x86_64-posix-seh를 설치한다.
만약) 32비트 컴파일러가 필요하다면 i686-posix-dwarf를 설치한다.

환경설정 vscode c언어 개발환경 세팅
환경설정 vscode c언어 개발환경 세팅

해당 폴더안의 파일들을 확인하고, 파일 경로를 확인합니다.
설치경로

환경 변수 설정

Windows + R버튼을 눌러 실행창에 sysdm.spl을 입력합니다.
시스템 환경 변수
또는 Windows 키를 눌러 ‘환경 변수’라고 입력하고 ‘시스템 환경 변수 편집’을 선택합니다.
시스템 환경 변수
‘시스템 속성’ 창에서 ‘환경변수’ 클릭 후 Path를 선택하고 ‘편집’ 버튼을 누릅니다.
환경변수환경변수 편집
새로 만들기 버튼을 클릭하고 ‘C:mingw64bin’을 추가합니다.
(mingw64가 설치된 경로 +bin을 그대로 입력해야 합니다.)
환경변수 편집

컴파일러(gcc)가 동작하는지 확인합니다.

명령프롬프트를 열고 명령어 gcc -v’를 입력해 다음과 같이 나오는지 확인합니다.
명령프롬프트에서 확인
VSCode에서 상단 메뉴바에 Terminal – Configure Default Build Task를 클릭
terminal-configure-default-build-task
Create task.json file from template를 클릭 후, Others를 클릭한다.
terminal-configure-default-build-task
생성된 tasks.json 파일에 아래의 코드를 복붙한다.

{
    "version": "2.0.0",
    "runner": "terminal",
    "type": "shell",
    "echoCommand": true,
    "presentation": {
        "reveal": "always"
    },
    "tasks": [
        {
            "label": "save and compile for C++",
            "command": "g++",
            "args": [
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "group": "build",
            "problemMatcher": {
                "fileLocation": [
                    "relative",
                    "${workspaceRoot}"
                ],
                "pattern": {
                    "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning error):\\s+(.*)$",
                    "file": 1,
                    "line": 2,
                    "column": 3,
                    "severity": 4,
                    "message": 5
                }
            }
        },
        {
            "label": "save and compile for C",
            "command": "gcc",
            "args": [
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "group": "build",
            "problemMatcher": {
                "fileLocation": [
                    "relative",
                    "${workspaceRoot}"
                ],
                "pattern": {
                    "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning error):\\s+(.*)$",
                    "file": 1,
                    "line": 2,
                    "column": 3,
                    "severity": 4,
                    "message": 5
                }
            }
        },
        {
            "label": "execute",
            "command": "cmd",
            "group": "test",
            "args": [
                "/C",
                "${fileDirname}\\${fileBasenameNoExtension}"
            ]
        },
        {
            "type": "cppbuild",
            "label": "C/C++: gcc.exe 활성 파일 빌드",
            "command": "C:\\MinGW\\bin\\gcc.exe",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": "build",
            "detail": "디버거에서 생성된 작업입니다."
        },
        {
            "type": "cppbuild",
            "label": "C/C++: g++.exe 활성 파일 빌드",
            "command": "C:\\MinGW\\bin\\g++.exe",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": "build",
//            "group": {
//               "kind": "build",
//                "isDefault": true
//            },
            "detail": "디버거에서 생성된 작업입니다."
        },
        {
            "type": "cppbuild",
            "label": "C/C++: gcc.exe 활성 파일 빌드",
            "command": "C:\\MinGW\\bin\\gcc.exe",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": "build",
            // "group": {
            //     "kind": "build",
            //     "isDefault": true
            // },
            "detail": "컴파일러: C:\\MinGW\\bin\\gcc.exe"
        }
    ]
}

단축키 설정

상단 메뉴에서 File – Preferences – Keyboard Shortcuts를 클릭한다.
검색창에 Keybindings.json이 있으면 클릭, 없으면 우측 상단의 아이콘을 클릭한다.
단축키설정
Keybindings.json 파일에 아래의 코드를 붙여넣는다.

// Place your key bindings in this file to override the defaults
[
    // 컴파일
    {
        "key": "ctrl+alt+c",
        "command": "workbench.action.tasks.build"
    },
    // 실행
    {
        "key": "ctrl+alt+r",
        "command": "workbench.action.tasks.test"
    }
]

c언어로 코드를 작성한 후, Ctrl + Alt + C를 입력하면 컴파일 언어를 선택할 수 있는데, save and compile for C를 클릭하면 컴파일이 된다.
그리고, Ctrl + Alt + R를 입력하면 바로 실행이 가능하다.
컴파일