[알고리즘/C++/VSCode/비추] PS를 위한 VSCode C++ 셋팅하기

SHark·2023년 1월 12일
0

알고리즘

목록 보기
2/20

여러분 WSL2 이용하세요!

현재는 다른 개발환경에서 하고 있습니다.

알고리즘을 풀기 전에 Vscode로 C++를 컴파일 하기위한 환경 셋팅을 해주자!

  • 단, Window유저라면 Dev c++이나, visual studio와 같이 C/C++와 아주 잘 연동되는 IDE도 있으니까, 귀찮다면 위 2가지 중 하나를 쓰도록하자.
  • Mac이라면 gcc가 있으니까, gcc를 실행해주면 된다. 매번 그게 귀찮을 수 있으니, 단축키 설정만 해주면 된다.

나는 본의아니게 Window를 태어날 때부터 쭉 써왔고, 게임을 포기 못하는 Korean이기 때문에 Window를 기준으로 설명을 할거다!

언어 환경셋팅의 Overview

여러가지 언어를 배우다보면 , 언어 환경셋팅 중에 공통적인 과정들이 많이 보이게 된다. 물론, 각각의 언어에 특화된 IDE를 써도 되지만, 그건 갬성이 없으니까, 하나의 IDE에서 여러가지 언어를 바꿔끼우는 짓을 많이 하다보면 느낌이 온다. 보통은 아래와 같은 과정을 거친다.![]

  1. 언어 해석기 다운로드 받기.
  2. OS가 언어해석기를 인지하게 만들기.
  3. 코드 에디터가 언어해석기 알아듣도록 연결하고, Terminal에서 바로 쓸 수 있도록 연결설정 해주기. 끗!

Node를 예로 들어보자.

1번은 Node 홈페이지 들어가서, Node를 다운로드 받는다. (Node는 JS 런타임이니까)
2번은 Node installer가 설치과정에서 해결을 해준다.
3번은 Vscode의 LiveServer,nodemon과같은 Extension을 이용하거나, package.json을 기반으로 설정을 해주면된다.

C언어 해석기, window에 GCC 다운로드하기

MinGW는 Minimalist GNU for Window의 줄임말로 , Windows에서 GCC를 쓸 수 있게 해주는 Tool이다. 여기서 , GNU가 무엇인지 ,GCC가 무엇인지에 대해서 깊이 다루지는 않을거다. 왜냐하면, 이건 따로 다뤄야 할정도의 분량이 있는 일이기 때문이다. (소프트웨어 라이센스와 Compiler, 초창기 OS에 관한 이야기가 다루어져야 한다)

여기서는 "Window"에서 "GCC"라는 컴파일러를 다룰 수 있게 해주는 Tool이라는 점만 기억하자.

아래의 링크에서 MinGW-W64 GCC-8.10에 있는 x86_64-posix-seh를 다운로드하면 된다.
만약, 자신의 운영체제가 32비트이다? 그럼 i686-posix-dwarf를 다운로드 하면된다.

https://sourceforge.net/projects/mingw-w64/files/mingw-w64/

C드라이브 밑에 압축을 풀어주면, C:\mingw64폴더가 생기게 될것이다.

이렇게 하면, 이제 C언어 해석기는 다운로드 받아진 것이다! . 이제, Window 친구에게 GCC가 있으니까 알아먹으라고 알려줘야하는 작업을 해야한다.

Window야, GCC여기 있어. 알아먹어!! 환경변수 설정해주기

OS는 바보멍텅이이기 때문에, GCC를 다운받았다해서 GCC를 알아먹지 못한다. 그래서, GCC를 Terminal과 연결해주는 작업이 필요하게 된다. 이 작업을 보통 Window에서는 환경변수를 설정해준다고 표현한다.

윈도우 검색창에 환경 변수라고 치면, 아주 친절하게 나오긴 하지만 이건 감성이 없기 때문에 탈락이다.

window +r키를 눌러 실행창을 띄워주고, 멋있게 sysdm.cpl를 입력해주도록 하자.

고급 ->환경변수 -> path -> 편집 -> mingw의 bin폴더 파일 경로를 등록해주자.

이제, 이렇게 하고나서, cmd에 gcc -v이라고 치면, Window에 gcc가 성공적으로 인식이 되어서 gcc version이 뜰 것이다.

VSCode에게 GCC 알려주기

MS사에서 배포한 Extension을 install 해주자.

설치가 완료 되었다면, Ctrl + shift +p를 입력해서, 커맨드 팔렛을 열어주고 구성 편집(UI)를 클릭해준다.

저희의 목적은 VSCode에 GCC를 알려줘야합니다! 그럼, 컴파일러를 선택해주면 됩니다.
그리고, 컴파일러에 쓰일 C++버전을 선택해주시면 됩니다. 저는 C++17를 선택하겠습니다.

저장하기를 누르면, c_cpp_properties.json이라는 아래와 같은 Json파일이 생성됩니다.

이제 Vscode가 Terminal에서 C언어파일을 컴파일 하는 과정이 남았죠??

VSCode야 컴파일 "해줘"

ctrl+shift+p를 눌러서, 기본빌드 작업구성이라고 검색해도 되고, configure task라고 검색하면, 기본빌드 작업구성이 나온다.

그리고, C++를 선택해주자. 그러면,task.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
                }
            }
        },
        // 바이너리 실행(Ubuntu)
        // {
        //     "label": "execute",
        //     "command": "${fileDirname}/${fileBasenameNoExtension}",
        //     "group": "test"
        // }
        // 바이너리 실행(Windows)
        {
            "label": "execute",
            "command": "cmd",
            "group": "test",
            "args": [
                "/C", "${fileDirname}\\${fileBasenameNoExtension}"
            ]
   
        }
    ]
}

그 다음, 단축키 설정까지 해주면 진짜 끝이다! 다시 커맨드 팔레트를 열어서, keyboard short cut.JSON을 열어주자.

그 뒤, JSON 파일을 아래와 같이 수정해주면 된다.

// 키 바인딩을 이 파일에 넣어서 기본값을 덮어씁니다.
[
//컴파일
{ "key": "ctrl+alt+c", "command": "workbench.action.tasks.build" },
//실행
{ "key": "ctrl+alt+r", "command": "workbench.action.tasks.test" }
]

이렇게 되면, Vscode에서 드디어 C++를 알아들을 수 있게 된다!

0개의 댓글