준비물
준비물은 간단하다 VSCode. 설치하는 건 Visual Studio Code 설치하기를 참고하도록!
C/C++ 확장 프로그램 설치
VSCode를 실행하고 왼쪽 확장설치자 탭을 열어 C/C++을 검색해 다음과 같은 확장 프로그램을 다운로드 받는다.
CodeLLDB 확장 프로그램 설치
VSCode에서 C/C++ 프로그래밍시 디버그도 하나하나 설정해야한다. 그때 필요한게 lldb라는 것인데, 기본적으로 맥에서 제공(?)하는 지 모르겠다. lldb는 잘 작동되지 않는다. input을 받는 상황이 오면 먹통이 되버린다. 이를 해결하는 방법이 VSCode 공식 홈페이지에 제공해주지만 그것마저 제대로 작동하지 않았기에 해당 확장 프로그램을 다운 받았다.
C/C++파일 생성
우선 작업 폴더를 생성하고 VSCode에서 해당 폴더를 연뒤 helloworld.cpp파일을 만든다. .cpp파일(c++파일)로 만드는 이유는 cpp 디버그 프로파일로 c파일도 디버깅이 가능하기 때문에 c++파일로 생성했다. 하지만 c 디버그 프로파일로 c++파일을 디버깅 할 수 없었다. 설정하기 나름이라는데 아무리 설정해도 못하겠다.
helloworld.cpp 파일을 생성하고 다음과 같이 작성한다.
| #include <iostream> | |
| using namespace std; | |
| int main() { | |
| cout << "Hello World!" << endl; | |
| return 0; | |
| } |
빌드 환경 구성
빌드를 위해 task.json파일을 생성한다. 해당 파일은 명령 팔레트(Command + Shift + P) > 기본 빌드 작업 구성 > C/C++:clang++ 활성 파일 빌드를 선택하면 자동으로 .vscode 폴더가 생성되고 안에 task.json 파일이 생긴다.
| { | |
| "version": "2.0.0", | |
| "tasks": [ | |
| { | |
| "type": "cppbuild", | |
| "label": "C/C++: clang++ 활성 파일 빌드", | |
| "command": "/usr/bin/clang++", | |
| "args": [ | |
| "-g", | |
| "${file}", | |
| "-o", | |
| "${fileDirname}/${fileBasenameNoExtension}" | |
| ], | |
| "options": { | |
| "cwd": "${fileDirname}" | |
| }, | |
| "problemMatcher": ["$gcc"], | |
| "group": { | |
| "kind": "build", | |
| "isDefault": true | |
| }, | |
| "detail": "컴파일러: /usr/bin/clang++" | |
| } | |
| ] | |
| } |
디버그 환경 구성
왼쪽 메뉴에 디버그 버튼을 누르고 launch.json파일을 생성하기 위한 절차를 진행한다. 구성은 왠만하면 clang++로 구성하자.
launch.json 수정
자동으로 생성되어 사용할 수 있지만 CodeLLDB를 사용하기 위해 다음과 같이 수정한다.
| { | |
| // IntelliSense를 사용하여 가능한 특성에 대해 알아보세요. | |
| // 기존 특성에 대한 설명을 보려면 가리킵니다. | |
| // 자세한 내용을 보려면 https://go.microsoft.com/fwlink/?linkid=830387을(를) 방문하세요. | |
| "version": "0.2.0", | |
| "configurations": [ | |
| { | |
| "name": "clang++ - 활성 파일 빌드 및 디버그", | |
| "type": "lldb", | |
| "request": "launch", | |
| "program": "${fileDirname}/${fileBasenameNoExtension}", | |
| "args": [], | |
| "stopAtEntry": false, | |
| "cwd": "${fileDirname}", | |
| "environment": [], | |
| "externalConsole": false, | |
| "MIMode": "lldb", | |
| "preLaunchTask": "C/C++: clang++ 활성 파일 빌드" | |
| } | |
| ] | |
| } |
기본적으로 9번째 줄 type이 cppdbg로 되어있다. 이걸 lldb로 변경하자.
그리고 18번째 줄 preLaunchTask에 들어가는 내용은 task.json에 name 부분과 똑같이 작성하면 된다.
실행 방법
간단하다 F5를 누르면 된다. 만약 맥의 경우 fn + F5를 누르면 된다.
마치며
기본적인 설정은 모두 끝났다. 이 설정을 통해 C파일도 빌드할 수 있으므로 걱정말고 시도해보길 바란다.