All Articles

맥에서 VSCode를 사용한 C/C++ 프로그래밍

C/C++ 공부에 앞서 맥에서 VSCode를 기반으로한 세팅을 해보자.

준비물

준비물은 간단하다 VSCode. 설치하는 건 Visual Studio Code 설치하기를 참고하도록!

C/C++ 확장 프로그램 설치

VSCode를 실행하고 왼쪽 확장설치자 탭을 열어 C/C++을 검색해 다음과 같은 확장 프로그램을 다운로드 받는다.

vscode_install_c_cpp_extension.png 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;
}
view raw helloworld.cpp hosted with ❤ by GitHub

빌드 환경 구성

빌드를 위해 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++"
}
]
}
view raw task.json hosted with ❤ by GitHub

디버그 환경 구성

왼쪽 메뉴에 디버그 버튼을 누르고 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++ 활성 파일 빌드"
}
]
}
view raw launch.json hosted with ❤ by GitHub

기본적으로 9번째 줄 type이 cppdbg로 되어있다. 이걸 lldb로 변경하자.

그리고 18번째 줄 preLaunchTask에 들어가는 내용은 task.json에 name 부분과 똑같이 작성하면 된다.

실행 방법

간단하다 F5를 누르면 된다. 만약 맥의 경우 fn + F5를 누르면 된다.

vscode_build_cpp.png

마치며

기본적인 설정은 모두 끝났다. 이 설정을 통해 C파일도 빌드할 수 있으므로 걱정말고 시도해보길 바란다.