새소식

인기 검색어

OS/Ubuntu

우분투에 Visual Studio Code 깔기 (C/C++)

  • -

이젠 코딩을 해야하니 Visual Studio Code를 깔아야한다.

일단 백준 코딩테스트를 위한 C++ 공부를 하려고 깔게된것이니.. 일단 C/C++ 컴파일 환경부터 만든다.


우분투 gcc, g++ 설치


build-essential 패키지를 아래 명령문으로 설치하면 gcc, g++이 설치된다.

$ sudo apt-get install build-essential

Visual Studio Code 설치


그냥 공식 홈페이지에서 가서 받으면 된다. 리눅스 지원해준다.. (카톡과는 다르게)


https://code.visualstudio.com/



언어를 한국어로 변경


언어를 한국어로 변환하는 건 쉽다.



일단 제일 아래에 있는 확장프로그램 아이콘을 누른다. (Ctrl + Shift + X 를 눌러도 된다.)


검색창에 'korean' 이라고 치면 'Korean Language Pack for Visual ... 샬라샬라' 가 나온다.

제일 위에있는거.. 그거 그냥 설치하면 된다.


설치 후 재시작하면 한글로 바뀌어 있다.


C/C++ 언어 지원 설치


C/C++에 대한 문법 강조는 기본적으로 지원하고 있으나, 해당 프로그램에서 제대로 사용하려면 확장을 설치해줘야한다.


방금 검색한 그곳에서 'c/c++' 을 입력하면 'C/C++' 이라는 제일 상위에 있는 프로그램이 나온다. 그거 설치..



C/C++ 프로젝트 생성


위 사진의 액티비티바에서 제일 위에 있는 탐색기를 연다.

폴더 열기 버튼을 클릭 후 프로젝트를 저장할 폴더를 선택한다.



이후에 위 사진에 표시된 아이콘을 눌러 임의로 하위 폴더를 하나 만들고, 바로 옆에있는 아이콘을 사용해 'hello.cpp' 파일을 만든다.

cpp 파일 안에는 이렇게 코드를 작성한다.


#include <iostream> using namespace std; int main() { cout << "Hello, World!" << endl; return 0; }


코드 컴파일 및 실행


아까 만들었던 파일들을 컴파일 하기 위한 과정이다.


  1.  일단 Visual Studio Code 의 메뉴에서 [터미널 > 기본 빌드 작업 구성] 을 선택한다.
  2.  검색창 밑쪽에 뜨는 '템플릿에서 tasks.json 파일 만들기' 를 선택한다.
  3.  'Other 임의의 외부 명령을 실행하는 예' 를 선택한다.
  4.  탐색기에 'tasks.json' 파일이 추가되고 편집기에서 해당 파일이 열린다.
  5.  '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}",
                "-g",
                "-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}",
                "-g",
                "-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": "cd ${fileDirname} && ./${fileBasenameNoExtension}",

            "group": "test"

        }
        // // 바이너리 실행(Windows)
        // {
        //     "label": "execute",
        //     "command": "cmd",
        //     "group": "test",
        //     "args": [
        //         "/C", "${fileDirname}\\${fileBasenameNoExtension}"
        //     ]
    
        // }
    ]
}






Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.