반응형

 

참조:  https://webnautes.tistory.com/1158

 

Visual Studio Code에서 C/C++ 프로그래밍(Ubuntu)

정리. 수알치 오상문

 

테스트에 사용한 운영체제 버전은 Ubuntu 18.04입니다.

 

1. C/C++ 컴파일러 설치

 build-essential 패키지를 설치하면 gcc, g++이 설치됩니다.

 

$ sudo apt-get install  build-essential

  

2. Visual Studio Code 설치

[주의] 아래 설치 진행 중 다음처럼 curl이 없다는 에러가 나오면
Command 'curl' not found, but can be installed with:
 
다음 명령처럼 curl을 먼저 설치합니다.
sudo apt install curl
 

[참조] Visual Studio Code 설치하는 방법( Windows / Ubuntu )

http://webnautes.tistory.com/1197

 

(1) 마이크로소프트 GPG 키를 /etc/apt/trusted.gpg.d/ 에 다운로드

sudo sh -c 'curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > /etc/apt/trusted.gpg.d/microsoft.gpg'

 

(2) Visual Studio Code를 다운로드 받을 저장소 추가

sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/vscode stable main" > /etc/apt/sources.list.d/vscode.list'

 

(3) 추가 저장소에서 패키지 목록 가져오기

sudo apt-get update

 

(4) VS Code 설치

sudo apt-get install code

 

(5) VS Code 실행하기

code를 입력하거나 윈도우에서 아이콘으로 실행

code

 

[참고] 유저 인터페이스 언어를 한글로 바꾸기

1) Ctrl+Shift+P 누름 >  입력창에서 'display' 엔터 입력

2) locale 값을 ko로 변경하고 Ctrl+S를 눌러서 저장

3) 한국어 언어팩 설치하기 위해  Ctrl + Shift + x 누름 > 입력창에서 'korean' 엔터 입력

4) 검색 항목에서 Korean Language Pack 항목에 보이는 초록색 Install 버튼 클릭 

5) 설치 후 Visual Studio Code를 종료했다가 다시 시작

  

3. 프로젝트 폴더 생성 및 예제 작성

 

새 프로젝트 만들기 전에 프로젝트 관리 폴더 만들기 위해,

먼저 로그인 사용자 폴더로 이동 후  폴더 만들기를 클릭하여  C_Projects 폴더를 생성

생성된 폴더로 이동 후 확인 버튼 클릭

 새 파일을 생성하고 Ctrl+S를 누르고 다음 코드를 입력

 

#include <stdio.h>

 

int main()

{

    printf("Hello, world!\n");

    return 0;

}

 

Ctrl + S를 눌러 소스 코드 저장 (파일명은 hello.c)

  

4. C/C++ 언어 지원 설치

C/C++에 대한 문법 강조(Syntax highlighter)는 기본적으로 지원하지만

C/C++ 확장을 설치 해주는 게 좋음

 

Ctrl + P 누름 > 'ext install c/c++' 입력하고 엔터

(또는 액티비티 바에서  확장 아이콘 클릭 후, c/c++을 입력)

 
사이드바에 보이는 c/c++ 키워드로 검색된 확장에서 C/C++ 설치를 클릭

확장을 적용시키기 위해 '다시 로드'를 클릭

  

5. 코드 컴파일 및 실행

Task Runner를 사용하면 상세 컴파일 설정 가능

 

1) Visual Studio Code의 메뉴에서 ‘터미널 > 기본 빌드 작업 구성' 선택

2) 템플릿에서 'tasks.json 파일 만들기' 선택

3) 'Others 임의의 외부 명령을 실행하는 예' 선택

4) 탐색기에 tasks.json 파일이 추가되고 편집기에서 해당 파일이 열리면

    tasks.json 내용을 다음처럼 고치고 Ctrl + S를 눌러서 저장

{
   "version": "2.0.0",
   "runner": "terminal",
   "type": "shell",
   "echoCommand": true,
   "presentation" : { "reveal": "always" },
   "tasks": [
         // C++ 컴파일 (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": "cd ${fileDirname} &&./${fileBasenameNoExtension}",

           "group": "test"

       }
   ]
}

 

6) 단축키 설정

 

메뉴에서 ‘파일 > 기본 설정 > 바로가기 키’ 선택

keybindings.json을 클릭하여 수정합니다. 


7) 다음처럼 입력하고 Ctrl+S를 눌러서 저장 (단, 우분투는 데스크톱 환경 단축키가 우선 동작함)

 

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

 

8) 탐색기에서 hello.c 선택하고 Ctrl+Alt+C 누르고 'save and compile for C' 선택

    편집 파일들이 저장되고 터미널에 컴파일 결과가 보임

    컴파일 성공이면 왼쪽 탐색기에 hello.exe 파일이 보임

 

9) Ctrl+Alt+R 누르고 'execute' 선택하면

   실행 결과가 터미널에 보임

 

[참고] 한글 입출력 예제

 리눅스 환경이면 별다른 설정 없이 진행 가능

 

<이상>

 

반응형

+ Recent posts