[VScode] VScode 환경에서 C/C++ 개발환경 구축하기
vscode환경에서 C와 C++을 사용하기 위한 방법을 정리하였습니다.
순서 중 MinGW와 관련된 부분은 다음 블로그를 참고하였습니다.
https://rasino.tistory.com/307
【 C 환경설정 】 VS code에서 C/C++ 코딩환경 구축하기
【 C 환경설정 】 VS code에서 C/C++ 코딩 환경 구축하기 요즘 파이썬(python)이나 자바(JAVA), javascript C# 등등 하이레벨 언어를 학습하던 사람들이 프로그래밍의 근간을 튼튼히 한다거나? 여러 가지 이
rasino.tistory.com
1. C/C++ extension 설치
먼저 vscode의 extension 탭에서 C/C++ 와 C/C++ Extension Pack을 설치해줍니다.
2. MinGW 설치
C/C++의 컴파일러인 gcc / g++를 사용하기 위해서는 MinGW가 필요합니다.
아래 링크에 들어가서 gcc / g++ / gdb를 설치할 수 있는 MSYS2의 설치파일을 내려받을 수 있습니다.
MSYS2
Software Distribution and Building Platform for Windows
www.msys2.org
링크로 들어가면 Installation 항목이 있는데, 여기서 msys2의 최신 버전을 받을 수 있습니다.
설치파일 실행 후 다음 > 다음 > 다음 으로 진행하여 설치를 시작합니다.
설치가 완료되면 MSYS2를 실행합니다.
MSYS2를 실행하면 프롬프트 창이 나오는데, 여기서 아래 명령어를 입력해줍니다.
pacman -S --needed base-devel mingw-w64-ucrt-x86_64-toolchain
mingw toolchain에 대한 선택 항목이 나옵니다. 기본값으로 전체를 선택해줍니다 (enter).
Proceed with installation : Y 를 입력하면 설치가 진행됩니다.
3. 환경변수 추가
설치한 MinGW를 사용할 수 있도록 환경변수에 추가해야 합니다.
작업표시줄에서 '시스템 환경 변수 편집'을 검색하여 열어줍니다.
고급 > 환경 변수 > 사용자 변수 > Path(내리면 나옵니다) > 편집 순서로 진행합니다.
새로만들기를 선택하여 'C:\msys64\ucrt64\bin'을 입력합니다.
만약 해당 경로가 없을 시 gcc / g++가 설치된 경로의 bin 파일을 찾아주면 됩니다.
cmd를 실행시켜 아래 명령어를 입력하여 환경 변수가 잘 등록되었는지 확인할 수 있습니다.
gcc -v
g++ -v
4. 빌드 작업 구성
vscode를 다시 실행하여 테스트 코드 test_c.c와 test_cpp.cpp를 만들어줍시다.
// test for c
#include <stdio.h>
int main(void){
printf("hello world\n");
return 0;
}
// test for c++
#include <iostream>
using namespace std;
int main(void)
{
cout << "Hello World" << endl;
return 0;
}
******
#include 라인에서 오류가 나온다면
현재는 헤더파일을 불러올 수 없는 상태이기 때문입니다.
빨간 줄에 커서를 대면 노란 전구표시가 나오는데,
여기서 Select an IntelliSense configuration to locate system headrs를 선택해줍니다.
디버거를 선택하는 창이 나오면 C++(GDB/LLDB)를 선택합니다.
이제 #include 라인에서 오류가 사라지게 됩니다.
******
이제 실행에 필요한 launch.json파일을 설정합니다.
왼쪽 탭에서 Run and Debug 탭에 들어가 create a launch.json file로 launch file을 만들어줍니다.
그 다음 각각 c와 c++을 디버깅할 수 있도록 하는 task.json파일을 설정 합니다.
원래 task.json은 코드를 디버깅 후 실행하면 사용 언어에 따라 자동으로 생성되지만,
만약 한 프로젝트에서 c와 c++을 둘 다 실행시키고 싶다면 task.json파일에 두 가지 코드를 다 넣어줘야 합니다.
Terminal > Configure Default Build Task ... 로 들어가 C/C++: gcc.exe build active file을 선택합니다.
그리고 생성되는 task.json에 아래 코드를 붙여 넣습니다.
아래 코드는 각각 c파일과 cpp파일을 실행 했을 때 생성되는 task.json 파일을 합친 것입니다.
{
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: gcc.exe build active file",
"command": "C:\\msys64\\ucrt64\\bin\\gcc.exe",
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "C:\\msys64\\ucrt64\\bin"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "Task generated by Debugger."
},
{
"type": "cppbuild",
"label": "C/C++: g++.exe build active file",
"command": "C:\\msys64\\ucrt64\\bin\\g++.exe",
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "C:\\msys64\\ucrt64\\bin"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "Task generated by Debugger."
}
],
"version": "2.0.0"
}
5. 실행
test_c.c와 test_cpp.cpp 파일을 디버깅하고 실행시켜봅시다.
디버거는 C++ (GDB/LLDB)를 선택하고, 구성은 C => gcc.exe / C++ => g++.exe 를 선택합니다.
TERMINAL 탭을 확인하면 정상적으로 hello world가 출력이 됩니다.