패키지 시스템,  VSCode 공식문서

Step 1. Ubuntu에 GCC 설치 

더보기
우분투에 C/C++ 프로그래밍 언어를 사용하기 위해 GCC(C/C++ 컴파일러)와 GDB(디버거)를 설치합니다.
개발에 필요한 필수 패키지를 설치한다고 생각하시면 됩니다.
sudo apt-get update; sudo apt-get upgrade -y; sudo apt-get install build-essential -y; gcc -v; gdb -v



 

 

 

01. 데비안 패키지 리스트 업데이드 && 업그레이드

sudo apt-get update; sudo apt-get upgrade -y

 

 

 

 

02. gcc, gdb 설치 

sudo apt-get install build-essential -y
build-essential 패키지는 데비안 계열의 리눅스 플랫폼에서 개발에 필요한 패키지를 묶어 놓은 것을 의미합니다. build-essential 패키지를 설치하면 GCC, G++ 등 리눅스 개발에 필요한 도구를 설치합니다.

 

 

 

 

03. gcc 설치 확인

gcc -v

 

 

 

 

 

04. gdb 설치 확인

gdb -v

 

 

Step 2. Visual Studio Code 설치

더보기

01. Snap으로 설치한 VSCode 제거

 

아래처럼 Snap 으로 VSCode 가 설치했다면, VS Code에서 "한글 입력 불가" 이슈가 발생합니다.

 

 

아래 명령어를 사용해 Snap 으로 설치한 VSCode를  제거합니다.

sudo snap remove code

 

 

 

 

 

02. Download Visual Studio Code 에서 .deb 패키지 다운로드합니다.

 

 

 

 

 

03. 다운받은 .deb 파일을 설치힙니다.

파일명은 VSCode 버전에 따라 다를 수 있습니다.

 

sudo dpkg -i <다운받은 VSCode 파일 이름, tab 자동완성 사용>

또는

sudo dpkg -i code_*

04. code 를 입력하면 Visual Studio Code 가 실행된다.

 

 

Step 3. VS Code - Extention 설치

더보기

01. VS Code 한국어 설정

 

VS Code 한국어 설정

1. 한국어 팩 설치 2. VS Code 재실행 3. 언어 변경 확인   VS Code 언어 선택 >configure display language

basiclike.tistory.com

 

 

 

 

02. VS Code → Extentions  C/C++ Extension Pack 

 

 

 

 

 

03. VS Code 를 종료하고, 다음 단계를 진행하세요.

 

 

더보기

01. C/C++ 소스코드를 작업할 프로젝트 폴더 선택합니다.

 

 

 

 

 

02. 아래 C, C++ 테스트 코드를 복사합니다.

 

 

HelloWorld_1.c 테스트 코드

#include <stdio.h>

int main()
{
    printf("Hello, C World!\n");
    
    printf("__STDC_VERSION__ = %ld\n", __STDC_VERSION__);
    
    return 0;
}

 

HelloWorld_2.cpp  테스트 코드

#include <iostream>

using namespace std;

int main()
{
    cout << "Hello, C++ World!" << endl;
    std::cout << "__cplusplus = " << __cplusplus << std::endl;

    return 0;
}

 

더보기
C/C++ 의 버전 및 사용할 컴파일러 등을 설정합니다.
C/C++: 구성 편집(UI) 를 사용해 설정 정보가 담긴 JSON 파일을 생성할수도 있습니다.

 

 

 

 

01.  구성 편집(JSON) 실행

 

 Ctrl + Shift + p 단축키를 눌러서 VS Code 명령어 팔렛을 활성화합니다.

 아래 키워드로 검색하여 < C/C++: 구성 > 을 찾아 선택합니다.

 < 구성 편집(JSON) > 을 선택합니다.

 

 

 

아래와 같이 자동으로 생성되지 않는다면, c_cpp_properties.json 파일에 붙여넣기

{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [],
            "compilerPath": "/usr/bin/gcc",
            
            // 아래는, 사용 환경과 필요 표준에 맞게 변경
            "cStandard": "c17", 
            "cppStandard": "gnu++17",
            "intelliSenseMode": "linux-gcc-x64"
        }
    ],
    "version": 4
}

 

더보기

01. 기본 빌드 작업 설정 파일 생성

 

Ctrl + Shift + P → Tasks: Configure Default Build Task 입력 후 선택합니다. 

 

Tasks: Configure Default Build Task

 



 

02. task.json 파일이 생성되면, 아래 json 코드를 붙여 넣습니다.

 

{
    "version": "2.0.0",
    "runner": "terminal",
    "type": "shell",
    "echoCommand": true,
    "presentation": {
        "reveal": "always"
    },
    "tasks": [
        //g++ c++ compiler config. part
        { 
            "type": "cppbuild",
            "label": "save and compile for C++",
            "command": "g++",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
				// (opt) 특정 컴파일러 버전 선택
				//, "-std=gnu++11"
            ],
            "options": {
                "cwd": "/usr/bin"
            },
            "group": "build",
			// (opt) 선택 없이, g++ 컴파일러 자동 실행시 선택
            //"group": {
            //    "kind": "build",
            //    "isDefault": true
            //},
            "problemMatcher": {
                "fileLocation": [
                    "relative",
                    "${workspaceRoot}"
                ],
                "pattern": {
                    "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning error):\\s+(.*)$",
                    "file": 1,
                    "line": 2,
                    "column": 3,
                    "severity": 4,
                    "message": 5
                }
            },
            "detail": "Task generated by Debugger."
        },
        //gcc c compiler config. part
        { 
            "label": "save and compile for C",
            "command": "gcc",
            "args": [
                "-g",
                "${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
                }
            }
        },
        // 바이너리 실행(Ubuntu)
        {
            "label": "execute",
            "command": "${fileDirname}/${fileBasenameNoExtension}",
            "group": "test"
        }
    ]
}

 

Step 7. 컴파일, 실행 테스트

더보기

01.  [ 빌드, 실행 ]  단축키를 변경합니다. 

 

 

 Ctrl + Shift + p 단축키를 눌러서 VS Code 명령어 팔렛을 활성화합니다.

 아래 키워드로 검색하여 선택합니다.

open keyboard shortcuts(JSON)

 

 

03. 빌드, 실행 단축키 변경

 

 

빌드: ctrl+alt+c 단축키

실행: ctrl+alt+r 단축키

 

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

 

 

03. VS Code 재실행

설정을 적용시키기 위해 VSCode를 재실행합니다.

 

 

Step 8. C/C++ 빌드, 실행 테스트

더보기

01. C 빌드 테스트

 

① C 언어로 작성된 소스코드에서 Ctrl + Alt+ C 단축키를 눌러서 빌드를 실행합니다.

 Step 6. 에서 작업한 Task.json 파일 설정 중, save and build for C 를 선택합니다.

③ task.json 파일에 설정한 빌드 명령어가 동작하여 실행 파일을 생성합니다.

 언어로 작성된 소스코드를 빌드하여 실행 파일이 생성됩니다.

 

 

 

02. C 실행 테스트

 

① C 언어로 작성된 소스코드에서 Ctrl + Alt+ R 단축키를 눌러서 빌드된 파일을 실행합니다.

 task.json 파일에 설정한 실행 명령어가 동작하여 터미널에 결과를 보여줍니다.

 

 

CPP의 경우, 빌드 단계에서 컴파일러를 C++ 로 선택합니다. 

 

C표준 __STDC_VERSION__ C++ 표준 __cplusplus
c99, gnu99  199901 C++98 199711L
c11, gnu11  201112 C++11 201103L
    C++14 201402L
c17, gnu17 201710 C++17 201703L
    C++20 202002L
    C++23 TBD (202100L)

 

C++ 컴파일러 호환 링크