본문은 개인적인 공부 목적이며, Window 10 환경에서 코테용 VS Code C++ 개발 환경 구축을 목적으로 작성하였습니다.
❕ 환경 구축을 시도하는 과정 중에 여러 오류가 있었으며, 시도해 본 방법 중 최종으로 성공한 방법을 그대로 담았습니다. 😭
1. VS Code 설치
먼저, 아래 링크로 들어가서 VS Code를 설치한다.
🔗 링크 : Visual Studio Code
2. MinGW 설치
다음으로 gcc와 g++를 사용하기 위해 MinGW를 설치해야한다.
아래 링크를 클릭하고 스크롤을 거의 끝까지 내리면 아래 사진처럼 다운로드 대상 파일들이 있을 것이다.
🔗 링크 : mingw-w64-release
위의 다운로드 파일은 installer 형태로 받아지고, 아래의 다운로드 파일(x86_64-win32-seh)을 클릭하면 .7z 확장자 파일이 내려받아지게 된다.
둘 중 하나를 선택해서 다운로드하자.
✔ 나는 아래 다운로드 파일(x86_64-win32-seh)을 선택했다.
이유는 install.exe을 처음 시도에 받아보았지만, 내 환경이랑 안 맞았는지 설치과정에서 에러가 났었다.
x86_64-win32-seh 파일을 다운로드 했으면 원하는 경로에 압축을 풀자.
- 파일명은 x86_64-8.1.0-release-win32-seh-rt_v6-rev0.7z 이다.
- 나는 C:\dev 경로에 압축을 풀었다.
- C:\ 에 바로 압축을 푸는 경우가 일반적인 듯 하니 참고하자.
압축까지 풀었으면 mingw64 폴더가 생기고 아래 사진처럼 구성되어 있을 것이다.
이제 위의 bin폴더의 경로를 복사한 뒤 환경변수를 설정하러 가보자.
- 복사한 bin 경로: C:\dev\mingw64\bin
- C:\ 에 압축을 푼 경우는 경로가 C:\mingw64\bin 이 될 것이다. 본인의 경로를 잘 확인하자!
3. 윈도우 환경 변수 설정 및 테스트
아래 사진처럼 윈도우 + R 을 누르고 sysdm.cpl 을 입력하면 시스템 속성창이 나온다.
시스템 속성 > 고급 > (맨 아래) 환경 변수 > "시스템 변수" 칸에서 Path 더블클릭
새로 만들기를 눌러 아까 복사해 둔 C:\dev\mingw64\bin 경로를 입력해 준다.
아래 사진을 참고하자.
환경 변수 설정까지 끝마쳤으면 cmd를 열어 아래 두 개의 명령어를 입력해 MinGW설치와 환경변수 설정이 잘 되었는지 테스트해보자.
gcc --version
g++ --version
위 사진처럼 버전에 대한 정보가 뜨면 정상적으로 설정을 끝낸 거다.
4. VS Code C/C++ 확장팩 및 json 설정 파일들
이제 VS Code에서 설정만 해주면 된다.
C/C++ 관련 확장팩을 설치한 뒤에 C/C++ 작업하는데 꼭 필요한 json파일 3가지를 설정할 것이다.
먼저, C/C++ 확장 팩들을 추가하자.
VS Code에서 Ctrl + Shift + X를 누르거나 아래 사진에 표시된 아이콘을 누르고,
C/C++을 검색해서 아래 사진에 나온 3가지를 모두 install 한다.
그리고 C/C++ 작업을 할 폴더를 생성하고 안에 cpp 파일을 하나 생성한다. (json 작업 전에 꼭 만들어주자!)
test.cpp에 간단한 코드도 추가해 주자.
#include <iostream>
using namespace std;
int main(void) {
cout << 해치웠나? << endl;
return 0;
}
1) c_cpp_properties.json 생성 및 설정
cpp파일을 연 상태에서 F1로 명령어 팔레트를 열고, C/C++ edit configurations 를 검색하면 나오는 편집기(UI버전)를 클릭한다.
이후 나오는 편집기에서 아래 사진과 같이 수정해 준다.
(박스로 표시하지 않은 입력란들도 혹시 모르니 똑같이 설정되어 있는지 확인하자.)
편집을 다 했으면 .vscode 폴더와 그 아래 c_cpp_properties.json 파일이 자동으로 생성된 걸 확인할 수 있다.
2) tasks.json 생성 및 설정
아래 사진처럼 test.cpp을 열고 있는 상태로,
(상단) 메뉴바 > Terminal > Run Build Task > C/C++: g++.exe build active file 을 클릭하면,
.vscode 폴더 아래에 tasks.json 파일이 자동으로 생성된다.
생성된 tasks.json의 내용은 아래와 같다.
{
"version": "2.0.0",
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: g++.exe build active file",
"command": "C:/dev/mingw64/bin/g++.exe",
"args": [
"-fdiagnostics-color=always",
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "C:/dev/mingw64/bin"
},
"problemMatcher": [
"$gcc"
],
"group": "build",
"detail": "compiler: C:/dev/mingw64/bin/g++.exe"
}
]
}
3) launch.json 생성 및 설정
마지막으로 launch.json을 설정하자.
아래사진처럼 test.cpp을 열고 있는 상태에서,
(상단) 메뉴바 > Run > Add Configuration... > C++ (GDB/LLDB) > g++.exe build and debug ~~ 을 클릭하면,
.vscode 폴더 아래 launch.json이 자동으로 생성이 된다.
✔ 여기서 내가 겪은 일
정상적인 결과는
(상단) 메뉴바 > Run > Add Configuration... > C++ (GDB/LLDB) > g++.exe build and debug ~~ 까지 클릭하면 기본적인 내용이 작성된 launch.json이 생기는 듯하였으나....
나는 Run >Add Configuration... > C++ (GDB/LLDB) 까지가 선택지가 끝이었고, 비어있는 launch.json이 생성되었었다.
그래서 내용을 직접 채워 넣은 케이스다 :)
(혹시 모르니 코드도 같이 첨부합니다)
생성된 launch.json의 내용은 아래와 같다.
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "gcc.exe - 활성 파일 빌드 및 디버그",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}\\${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "C:\\dev\\mingw64\\bin\\gdb.exe",
"setupCommands": [
{
"description": "gdb에 자동 서식 지정 사용",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "C/C++: g++.exe build active file"
}
]
}
마무리
모든 설정은 끝났다!
만들어둔 test.cpp 을 열고 F5를 눌러 실행시키면 아래처럼 정상적으로 작동할 것이다.
'💻 Programming > C++' 카테고리의 다른 글
[C++] STL sort() 함수 사용법 (0) | 2024.08.09 |
---|---|
[C++/컴파일 에러] error: cannot jump from switch statement to this case label 에러 해결 및 원인 (0) | 2024.07.23 |
[C++] STL(Standard Template Library) 정리 (0) | 2024.07.04 |