[vscode] C/C++ 디버거 툴 설치 및 컴파일 방법
- vscode에서 C/C++ 디버깅을 위해서는 디버거 툴 설치가 필요하다. 차근차근 따라오도록 하자.
1. MSYS2 다운로드 및 설치
- C/C++ 컴파일러인 gcc 컴파일러를 먼저 설치해야 한다.
다운받아진 파일을 실행시켜줍시당
Next~! 클릭
설치를 원하는 위치를 지정한 후에 다음(Next)를 눌러주세요. 저는 D드라이브로 위치를 변경해줬는데,
변경하지 않는다면 기본 디폴트 저장 경로는 'C:\\msys65'로 지정됩니다.
시작 메뉴에 넣을 것인지 물어보네요 ㅎㅎ 바탕화면도 아니고 시작메뉸데 뭐.. Next를 눌러줍시다.
고럼 요렇게 쭈루루룩 설치가 됩니다.
2. MSYS2 터미널에서 패키지 업데이트
① "pacman -Syu" 입력
② "Y" 입력 x 2
③ 설치완료되면 터미널 재실행
④ "pacman -Su" 입력
※ 만약 Fail이 뜨면, ① 명령어 다시 수행할 것 (중간에 업데이트 끊긴거임)
⑤ "Y" 입력
⑥ "pacman -S --needed base-devel mingw-w64-x86_64-toolchain" 입력
- toolchain에 gcc 컴파일러가 포함되어있다.
"pacman -S mingw-w64-x86_64-gtk4" 입력
"pacman -S mingw-w64-x86_64-python-gobject" 입력
⑦ Enter 입력
- 엔터키는 모두 설치를 의미한다.
⑧ "Y" 입력 → 설치 완료
3. 환경변수 설정
- 컴파일러를 제대로 사용하기 위해서는 환경변수에 PATH를 등록이 필요하다.
① 윈도우 창에서 "환경 변수" 검색 - "시스템 환경 변수 편집" 실행
시작에서 환경 변수만 검색하셔도 '시스템 환경 변수 편집'을 찾으실 수 있습니다.
② "고급" 클릭 - "환경 변수(N)" 클릭
고럼 요런 화면이 뜨는데 '고급'탭에서 하단의 '환경 변수(N)'을 클릭해주세요~
③ 시스템변수에서 Path 클릭 - "편집(I)" 클릭
시스템변수의 Path를 찾아 편집해줍시다.
④ 새로만들기(N) 클릭 - "C:\\msys64\\mingw64\\bin" 입력 - "확인" 클릭
경로는 msys2 설치 위치 내, 다운받았던 컴파일러의 bin 폴더를 지정해줘야 합니다.
저의 경우 mingw64 패키지를 설치하였기 때문에 mingw65\\bin으로 지정해줬어요.
물론 설치위치는 사용자가 설치시 변경할 수 있기 때문에 다를 수 있습니다.
⑤ cmd창에서 "gcc -v" 입력
-"Ctrl + R" 입력 후 실행창에서 cmd 입력
- 정상 설치 여부에 따라 아래와 같이 차이가 있다.
★ cmd창이 열려있는 경우에 gcc -v를 하면 비정상 설치된 것처럼 보임. (cmd창 껐다가 다시 켜서 gcc -v 입력) ★
4. C/C++ 디버거 설치하기
① vscode의 Extension 탭에서 "C/C++" 입력 - 상위 3개 Extension 설치
5. C/C++ 디버깅 실행하기 (F5)
※ 들어가기에 앞서 : JSON 파일 설정하기
Ctrl+Shift+P 입력 후, C/C++을 검색한다. Edit Configurations (UI)를 선택한다.
여기서 C/C++ 구현 편집 (UI) 를 선택하면, 설정화면이 나오게 된다.
여기서 다음과 같이 설정하고 창을 닫으면 된다. 즉시저장이 된다.
1. 구성이름 : win32
2. 컴파일러 경로 : c:/mingw/bin/g++.exe
- \ 역슬러시를 쓰지말고, / 슬러시를 쓴다. 주의하자
- mingw설치를 안했다면, 전 포스팅을 참조하자.
3. Compiler arguments : 빈칸으로 둔다. (컴파일러 추가 옵션 값)
4. IntelliSense : 코딩할때 큰 도움이되는 기능, gcc-x64로 선택
5. 경로 포함 :건드리지 않는다.
6. 정의 : 건드리지 않는다. _IntelliSense의 추가 옵션 값
이렇게 설정이 끝나면 .vscode 폴더가 자동 생성되고,c_cpp_properties.json 파일 생성이 완료된다. UI에서 설정한 값 대로, json파일이 생성 된 것이다. 이 파일이 있어야만 다른 json파일의 기본값들을 자동으로 채워준다.
① 소스코드 작성
- 폴더에 새 파일을 추가하고 파일명은 C언어 : '~~.c'로, C++ : '~~.cpp'로 파일을 생성한다.
- C언어와 C++ 예시를 복사 붙여넣기 후 주석을 풀어준다.
- 전체주석 설정 : Ctrl+a → Ctrl+k+c
- 전체주석 해제 : Ctrl+a → Ctrl+k+u
※ 빌드만 하는 경우, 빌드 명령어 : Ctrl+Shift+B
// // C++ 예시
// #include <iostream>
// using namespace std;
// class App
// {
// public:
// void run(){cout<<"run!!!"<<endl;}
// };
// int main()
// {
// App app;
// app.run();
// return 0;
// }
// //C언어 예시
// #include <stdio.h>
// int main(void)
// {
// printf("hi!!!\n");
// return 0;
// }
★ C++ 예시에서 include 읽지 못하는 이유 ★
- 아래와 같이 <iostream>을 읽지 못하는 이유는 파일 이름이 'test.c' 이기 때문이다.
- 파일 이름을 'test.cpp'로 변경하니 잘 읽는다.
② F5 입력 - 'C++ (GDB/LLDB)' 선택
③ 'gcc.exe' (C언어용) 또는 'g++.exe' (C++용) 선택
※ 빌드가 안될때? 자신의 터미널의 위치가 현재 코드가 있는 위치가 맞는지 다시한번 확인해보자? 잘 모르겠으면, 터미널을 종료하고 다시 빌드를 시도해보자.
④ 'launch.json' 파일 종료 - 탐색기 클릭
- 빌드에 성공하면 자동으로 'launch.json' 파일을 오픈시킨다. 그냥 무시하고 끄면 된다.
- 빌드에 성공하면 '.vscode'라는 폴더가 생성되며 그 안에 'launch.json'과 'tasks.json' 파일이 생성되어있는 것을 볼 수 있다. 또한 상위 디렉토리에 .exe파일도 생성되어있다.
- .exe 파일을 실행했을 때 아무일도 일어나지 않는다면, 아래 글을 참고하길 바란다.
⑤ F5 다시 입력
- F5를 다시 입력하면 터미널에 hi!!!가 잘 실행되는 것을 볼 수 있다.
6. *.json 파일 수정
1) launch.json 파일 수정
- 아래 소스를 복붙한다.
gdb.exe 파일이 저장되어 있는 위치로 경로 수정해야 한다.
{
// IntelliSense를 사용하여 가능한 특성에 대해 알아보세요.
// 기존 특성에 대한 설명을 보려면 가리킵니다.
// 자세한 내용을 보려면 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": "${fileDirname}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "C:\\msys64\\mingw64\\bin\\gdb.exe",
"setupCommands": [
{
"description": "gdb에 자동 서식 지정 사용",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "C/C++: gcc.exe 활성 파일 빌드"
}
]
}
2) tasks.json 파일 수정
- 아래 소스를 복붙한다.
gcc.exe 파일이 저장되어 있는 위치로 경로 수정해야 한다.
c언어의 경우 : gcc.exe로 파일명 변경
C++의 경우 : g++.exe로 파일명 변경
{
"tasks": [
{
"type": "cppbuild",
"label": "C/C++: gcc.exe 활성 파일 빌드",
"command": "C:\\msys64\\mingw64\\bin\\gcc.exe",
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}\\${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "${fileDirname}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
},
"detail": "디버거에서 생성된 작업입니다."
}
],
"version": "2.0.0"
}
★ 빌드 에러 나는 경우 ★
1. Unable to start debugging. Program path ~
2. Unable to start debugging. Unexpected GDB output from command "-environment-cd ~~
3. launch: progrm " does not exist.
4. 컴파일러 오류 발생
원인 1 : 폴더 경로 중 한국어가 있는 경우
원인 2 : C언어로 빌드(.c 파일)했다가 C++로 다시 빌드(.cpp 파일)하는 경우
==> Step 6의 *.json 파일들을 다시 수정해야 한다.
'IT > 파이썬 & vscode' 카테고리의 다른 글
[vscode] C언어 디버깅 오류 (-environment-cd 에러) (0) | 2023.10.15 |
---|---|
[vscode] C/C++ 여러 파일 한번에 컴파일하기 (0) | 2023.02.19 |
[vscode] 가상환경(venv) 활용방법 (0) | 2023.02.16 |
[vscode] 탭 간격 영구 설정, 공백 표시, 탭키 공백으로 인식 해제 방법 (1) | 2022.12.09 |
[vscode] 소스코드 한번에 예쁘게 정리하기 (0) | 2022.11.11 |