Windows에서 Visual Studio Code로 C++ 개발 환경 설정하기

TL;DR

주로 macOS에서 개발하는데 하필이면 렌더독이라고 그래픽관련 디버깅 도구가 윈도우에서 작동이 된다고 한다. 그래서 디버깅을 하기 위해 윈도우 개발 환경을 설정하기로 하는데!!!

전제 조건

  1. 비주얼 스튜디오 코드 설치.
  2. VS Code용 C/C++ 확장 설치.
  3. Microsoft Visual C++(MSVC) 컴파일러 도구 세트를 설치.
  4. CMake 설치.
    • C++를 이용한 데스크톱 개발를 설치할 때 같이 설정이 되는데 만약 설정 해제하고 설치했다면 따로 설치하도록 한다.

프로젝트 생성

샘플코드를 하나 만들어 준다.

main.cpp

1
2
3
4
5
6
#include <iostream>

int main() {
std::cout << "Hello, World!" << std::endl;
return 0;
}

CMakeLists.txt

1
2
3
4
5
cmake_minimum_required(VERSION 3.0)

project(SampleCPlusPlusProject)

add_executable(SampleCPlusPlusProject main.cpp)

빌드

1
2
cmake -B ./build -G "Visual Studio 16 2019" .
cmake --build ./build --config Debug

해당 명령어를 사용하면 빌드를 할 수 있지만, Visual Studio Code를 사용하면 쉽게 할 수 있다.

vscode 폴더

.vscode 폴더는 Visual Studio Code 프로젝트나 작업 공간에서 설정과 관련된 파일을 보관하는 디렉토리이다. 이 폴더는 특정 프로젝트 또는 작업에 대한 설정 및 환경 구성을 담당한다.

  • tasks.json (빌드 명령어 설정 파일): 이 파일은 프로젝트를 빌드하기 위한 명령어와 설정을 정의.
  • launch.json (디버깅 설정 파일) : 디버깅을 위한 설정을 담고 있으며, 디버거 설정과 실행 환경을 구성.

생성된 파일들은 Visual Studio Code에서 C++ 개발 환경을 구성하고 프로젝트를 관리하는 데 도움을 준다.

tasks.json

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
"version": "2.0.0",
"tasks": [
{
"label": "cmake build and run", // 작업 이름
"type": "shell", // 명령어 실행을 위한 shell 타입
"command": "cmake -B ./build -G 'Visual Studio 16 2019' .; cmake --build ./build --config Debug; cd ./build/Debug; ./SampleCPlusPlusProject.exe", // 빌드 및 실행 커맨드 입력
"options": {
"cwd": "${workspaceFolder}" // 현재 작업 디렉토리 설정
},
"group": {
"kind": "build", // 작업 그룹을 빌드로 설정
"isDefault": true // 기본 작업으로 설정
}
}
]
}

ctrl + shift + b 를 누르면 프로그램이 실행되는 것을 확인할 수 있다.

launch.json

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
{
"version": "0.2.0",
"configurations": [
{
"name": "cmake build and debug", // 디버그 구성 이름
"type": "cppvsdbg", // C++ 디버그 타입
"request": "launch", // 디버그 실행 요청
"program": "${workspaceFolder}/build/Debug/SampleCPlusPlusProject.exe", // 실행할 바이너리 파일 경로
"args": [], // 실행 시 전달할 명령행 인수
"stopAtEntry": true, // 브레이크 포인트 사용 여부
"cwd": "", // 현재 작업 디렉토리 (의존성 및 기타 파일을 찾기 위함)
"environment": [], // 환경 변수 설정
"externalConsole": true, // 외부 콘솔 사용 여부
"preLaunchTask": "cmake build and run" // 디버그 실행 전에 실행할 작업(Task) 이름
}
]
}

F5를 누르면 디버거가 실행되며 디버깅을 할 수 있게 된다.

Finish

이제 명령어를 안치고 간단한 단축키로 실행파일을 실행하고, 디버깅도 할 수 있다!!! 쉘 스크립트나 CMake를 이용해서 하나의 명령어로 OS별로 빌드, 실행, 디버깅되면 편하겠다. 이 부분에 대해서 좀 더 연구해봐야 할 듯!!!

참고 링크