본문 바로가기
PROGRAMMING/programming 관련

[C/C++] Visual Studio code(vs)에서 c언어 사용하기! Let's coding environment Setting !

by PIZA 2024. 12. 31.

노트북에서 비교적 가벼운 vs code로 c언어 코드 테스트를 위한 환경을 세팅하는 방법이다!
코테나 실습 내용의 코드를 붙여 넣어 여러 가지 테스트를 할 수 있을 것이다.
 
더 쉬운 방법으로는, 설치가 필요 없는 사이트인 programiz( Online C# Compiler (Editor) - Programiz )가 있겠으나, 
원활한 디버깅을 위해 vscode를 이용해 보자~
 
 

사용 방법

ctrl+s로 c파일 수정하고 저장.
ctrl+alt+c 로 컴파일.
ctrl+alt+r 로 실행. >> Terminal에 실행 결과가 뜬다.


+) 24.12.31 추가(편의성 개선)

c파일 수정 후 ctrl+s로 저장
alt+c로 컴파일 및 실행. >> Terminal에 실행 결과가 뜬다.
이런 식으로 코드 작성 후

터미널에서 확인 가능하다.


 
 


 
 

1. VS CODE 설치

 
Visual Studio code를 설치한다.
Download Visual Studio Code - Mac, Linux, Windows

 
 
microsoft의 c/c++ 확장 프로그램 3개를 모두 설치한다.

 
 
 
 

2. MinGW 설치

 
MINGW를 설치한다. 
MinGW - Minimalist GNU for Windows download | SourceForge.net
 
* MinGW를 설치한 경로를 기억하도록 한다!!! (3의 환경 변수 편집에서 쓰인다.)
 

 
 
continue를 누르고,
MinGW Installation Manager 창에서 
네 가지를 설치한다.

 
네 가지를 선택하고 Installation - Apply Changes를 선택하면 선택한 패키지가 반영됩니다.
 

 
설치가 완료되면 창을 닫는다.
성공적으로 설치가 완료된다면 설치된 패키지의 체크박스가 화살표에서 초록색으로 바뀌어 있을 것이다.

 
 
 

3. 기기 내 설정

 
시스템 환경 변수 설정 검색, 
시스템 속성 -> 환경 변수

 
(시스템 변수:)Path -> 편집 

 
 
찾아보기 : MinGW를 설치한 경로
(사람마다 다를 수 있다. 2의 MinGW를 설치할 때 기억해 둔 경로가 여기서 쓰인다.)
를 환경 변수에 추가한다.

추가한 뒤의 모습

 
 
 

3.5. 정상 설치 확인

 
프로그램이 정상 설치 되었는지 확인하자.
cmd(명령 프롬프트)를 연다.
gcc -v
g++ -v
를 입력해 설치가 제대로 되었는지 확인한다. 
(*확인이 제대로 되지 않는다면 잠시 기다린 후, 한 번 재부팅하고 다시 cmd를 열어 확인해 주세요!)

 
 
 
 

4. VS CODE 마무리 작업

 
Visual Studio를 열어
Terminal -> Configure Default Build Task... 를 클릭하여
tasks.json 파일을 연다.

 
(*위에 이런 선택지(들)이 뜰 텐데, 맨 위의 것을 계속 클릭해 주시면 됩니다.)

 

tasks.json이 열렸다.

 
tasks.json 의 코드를 지우고,
아래 코드를 붙여넣는다. (참고 : 3dlecture tistory homepage)

//tasks.json
{
    "version": "2.0.0",
    "runner": "terminal",
    "type": "shell",
    "echoCommand": true,
    "presentation": {
        "reveal": "always"
    },
    "tasks": [
        //C++ compile
        {
            "label": "save and compile for C++",
            "command": "g++",
            "args": [
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "group": "build",
            //compile error show
            //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 compile
        {
            "label": "save and compile for C",
            "command": "gcc",
            "args": [
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "group": "build",
            //compile error show
            //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
                }
            }
        },
        //binary run(Windows)
        {
            "label": "execute",
            "command": "cmd",
            "group": "test",
            "args": [
                "/C",
                "${fileDirname}\\${fileBasenameNoExtension}"
            ]
        }
    ]
}
코드를 붙여넣은 모습. 이렇게 붙여넣으면 된다.

 
 
File -> Preferences -> Keyboard Shortcuts 
를 클릭한다. 

 
 
클릭하여 keybindings.json 파일을 열어, 
아래의 코드를 붙여넣는다. (참고 : 3dlecture tistory homepage)

//keybindings.json
[
    //compile shortcut key (컴파일 단축키)
    {
        "key": "ctrl+alt+c",
        "command": "workbench.action.tasks.build"
    },

    //run shortcut key (실행 단축키)
    {
        "key": "ctrl+alt+r",
        "command": "workbench.action.debug.run"
    }
]

 
 
 
이제 c/c++파일을 작성해 확인해야 할 텐데,
오류가 날 수 있다.
 
일단 파일을 만들어 보자.

 

 
일단 c파일이 포함된 폴더를 만들자.

폴더를 만들고,
제목.c 파일을 만들면 c파일이 만들어진다.

 
예시 코드를 이런 식으로 입력해 보자.

#include <stdio.h>

int main() {
    printf("Hello, World!");

    return 0;
}

 
 
오류가 발생한다.(발생하지 않으면 5로 이동한다.)

1line에 이런 오류가 난다.

 
 
 

4-5. 오류 해결 방법

 
View -> Commend Palette 클릭해서 (또는 단축키 ctrl + shift + P)
Commend Palette를 실행한다.

Commend Palette를 실행하면 이렇게 위에 검색창이 뜰 것이다.

 
C/C++: Edit Configurations (JSON) 을 검색해 실행한다.

 
 
c_cpp_properties.json 이 열린다.

 
 
 
작성되어있는 코드를 지우고 아래 코드를 붙여넣는다.
 
*주의1 : 7,8,9,16line의 D: /MinGW . . . 경로는 사람마다 다를 수 있다!
3의 환경 변수 설정에서 설정한 경로를 사용해야 한다.
 
*주의2 : 본인은 6.3.0버전이지만, 사람마다 설치한 버전이 다를 수 있다. 
3.5의 빨간 박스로 표시한 부분에서 버전을 확인할 수 있다.

주의1
주의2

 

//c_cpp_properties.json
{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**",
                "D:/MinGW/include",
                "D:/MinGW/lib/gcc/mingw32/6.3.0/include",
                "D:/MinGW/lib/gcc/mingw32/6.3.0/include-fixed"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "compilerPath": "D:/MinGW/bin/gcc.exe",
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "windows-gcc-x64"
        }
    ],
    "version": 4
}
이런 식으로 붙여넣는다.

 
다시 
View -> Commend Palette 클릭해서 (또는 단축키 ctrl + shift + P)
Commend Palette를 실행한다.

 
Use gcc.exe Found at D:\MinGW\bin\ 을 실행한다.

 
 
여기까지 완료했다면
이런 식으로 파일들이 만들어져 있을 것이다.

 
 
만약 tasks.json이 보이지 않는다면, 
4에서 설정한 파일을 다시 열어주면 된다.
 
Terminal -> Configure Default Build Task... 를 클릭하여
tasks.json 파일을 연다.

맨 위의 것 클릭하면 된다.

 
그러면 tasks.json 파일이 .vscode 아래에 생긴다.

최종 형태

 
 
 
 

5. 실행 테스트

 
1) ctrl + alt + c로 컴파일한다.

 
컴파일이 성공적으로 완료되어, MyTest.exe 파일이 생겼다.

 
 
2) ctrl + alt + r 로 실행한다.
Hello, World! 가 Terminal에 출력된다.

 
 

사용 방법

 
ctrl+s로 c파일 수정하고 저장.
ctrl+alt+c 로 컴파일.
ctrl+alt+r 로 실행. >> Terminal에 실행 결과가 뜬다.

 
 
 
 
 
 
(24.12.31 추가)

+) 편의성 개선

 
위의 과정을 마쳤다면, 사용에 불편함이 생길 수 있다.
실행 결과를 한 번 보려면 
ctrl+s로 저장을 하고, ctrl+alt+c로 컴파일을 하고, ctrl+alt+r로 실행까지 해야 하는 것은 매우 수고로울 것이다.
 
파이썬(Python)과 같은 언어는 f5키로 위의 과정을 모두 실행해 결과를 한 방에 출력하는데, 이 방식은 아주 강력하고 사용자친화적인, 편한 방식이다.
 
따라서 컴파일과 실행을 하나로 합쳐 사용해 보자!
(저장은 수정의 용이함을 위해 ctrl+s로 나눠 원래대로 별도로 사용한다.)
 
 
아래의 오류가 발생하는데, 이는 '바탕 화면' 의 한글, 띄어쓰기로 인한 것이다.
아래 오류 포함, "&&" 사용 불가 오류 등을 모두 해결 가능한 코드를 작성한다.

* Executing task: build and run 

Starting build...
cmd /c chcp 65001>nul && cmd /C "chcp 65001 > nul && "D:\MinGW\bin\gcc.exe" -fdiagnostics-color=always -g "C:\Users\lux02\OneDrive\바탕 화면\PizzaMarket\MyTest.c" -o "C:\Users\lux02\OneDrive\바탕 화면\PizzaMarket\MyTest.exe" && "C:\Users\lux02\OneDrive\바탕 화면\PizzaMarket\MyTest.exe""

Build finished with error(s).

 *  The terminal process failed to launch (exit code: -1). 
 *  Terminal will be reused by tasks, press any key to close it. 

 
 
 
[tasks.json 수정]

//tesks.json

{
	"version": "2.0.0",
	"tasks": [
		{
			"type": "cppbuild",
			"label": "build and run",
			"command": "cmd",
			"args": [
				"/C",
				"chcp 65001 > nul && \"D:\\MinGW\\bin\\gcc.exe\" -fdiagnostics-color=always -g \"${file}\" -o \"${fileDirname}\\${fileBasenameNoExtension}.exe\" && \"${fileDirname}\\${fileBasenameNoExtension}.exe\""
			],
			"options": {
				"cwd": "${workspaceFolder}"
			},
			"problemMatcher": [
				"$gcc"
			],
			"group": {
				"kind": "build",
				"isDefault": true
			},
			"detail": "compiler and run: D:\\MinGW\\bin\\gcc.exe"
		}
	]
}

 
 
[keybindings.json 수정]
*alt+c 클릭 시 컴파일과 실행을 하도록 수정했다.
빈 단축키면 뭐든 가능하다. 편한 것으로 설정하자.

//keybindings.json

[
    {
        "key": "alt+c",
        "command": "workbench.action.tasks.runTask",
        "args": "build and run"
    }
]

 
 
 

사용 방법

c파일 수정 후 ctrl+s로 저장
alt+c로 컴파일 및 실행. >> Terminal에 실행 결과가 뜬다.

 

 
 
 
 
* 문제 해결에 도움이 필요할 경우 댓글로 알려주세요.

'PROGRAMMING > programming 관련' 카테고리의 다른 글

정렬(array)에 대해  (0) 2025.02.26