728x90

✅ tasks.json이란?

tasks.json은 **빌드 작업(컴파일 명령)**을 정의하는 파일

{
  "label": "build C file",        // 작업 이름
  "type": "shell",                // 터미널에서 실행할 명령
  "command": "gcc",               // 실행할 명령어 (예: gcc)
  "args": [                       // 명령어 뒤에 붙는 인자들
    "-g",                         // 디버깅 정보 포함
    "${file}",                   // 현재 열려있는 파일
    "-o", "${fileDirname}\\${fileBasenameNoExtension}.exe"  // 출력 exe 파일 이름
  ]
}

여기서 ${file}, ${fileDirname} 같은 것들은 VS Code의 변수

  • ${file}: 현재 열려 있는 파일 전체 경로
  • ${fileDirname}: 파일이 있는 폴더
  • ${fileBasenameNoExtension}: 파일 이름(확장자 제외)
  •  

✅ launch.json이란?

launch.json은 디버깅 환경을 설정하는 파일
F5를 눌렀을 때 어떤 프로그램을 실행해서 디버깅할지를 여기서 정의

{
  "name": "Debug",                             // 디버그 설정 이름
  "type": "cppdbg",                            // C++ 디버거 사용
  "request": "launch",                         // launch or attach
  "program": "${fileDirname}\\${fileBasenameNoExtension}.exe", // 실행할 프로그램
  "cwd": "${fileDirname}",                     // 작업 디렉토리
  "externalConsole": true,                     // 외부 콘솔에서 실행 (cmd)
  "MIMode": "gdb",                              // GDB 디버거 사용
  "miDebuggerPath": "gdb"                      // GDB 경로
}

miDebuggerPath는 MinGW-w64에 포함된 gdb.exe 경로여야 해. 예: C:\\mingw-w64\\mingw64\\bin\\gdb.exe


🔧 VS Code 직접 설정 튜토리얼 정리

 

 

설정 파일역할
tasks.json 컴파일 명령어 정의 gcc hello.c -o hello.exe
launch.json 디버깅 실행 방법 정의 gdb hello.exe 디버깅 시작

🤔 CMake랑 뭐가 달라?

✅ VS Code 설정 방식 특징

  • tasks.json과 launch.json을 직접 써야 함
  • 프로젝트 구조가 단순할 때는 빠르게 사용 가능
  • 자동화가 부족하고, 대형 프로젝트에서는 유지가 어려움

✅ CMake 특징

  • CMake는 크로스 플랫폼 빌드 시스템 생성기
  • CMake 파일(CMakeLists.txt)을 만들어 프로젝트 전체 빌드 과정을 자동화
  • Makefile, Ninja, Visual Studio 솔루션 등 다양한 빌드 시스템을 생성 가능
  • 프로젝트 구조가 복잡할수록 유리함 (라이브러리 여러 개, 서브디렉토리 등)

 

🔍 비교 요약

항목 VS Code 설정 (tasks.json/launch.json) CMake
사용 대상 간단한 프로젝트 중/대형 프로젝트
설정 복잡도 낮음 처음은 조금 높음
자동화 정도 수동 자동화
플랫폼 지원 VS Code 내에서만 작동 플랫폼 독립 (Windows, Linux, macOS 등)
유지보수 직접 경로 수정 필요 변수/설정으로 유연하게 관리

💬 언제 CMake를 써야 할까?

  • 프로젝트에 파일이 3개 이상이 되거나, 헤더/소스가 분리되기 시작하면 CMake를 고려.
  • g++ main.cpp module1.cpp module2.cpp 이런 명령어가 길어지기 시작하면 이제는 CMake가 필요할 때.
728x90

+ Recent posts