본문 바로가기

Mac OS

Visual Studio Code(맥 사용자) 설치 및 설정 가이드(C++) 2탄

본격적으로 시작해보자

 

1. 커맨드 + 쉬프트 + P 쎄게 눌러주자

  - 다음과 같이 막 뜬다 일단 Tasks: Configure Default Build Task 엔터

  - tasks 라고 검색해도 나온다.

  - 엔터 하면 Others가 나오는데 Others를 눌러주자

 

2. 그럼 다음과 같은 .vscode/tasks.json 파일이 생긴다

  - 이 녀석은 컴파일 및 exec를 설정하는 프로그램이다.

  - 다음과 같은 코드로 교체 해주자

  - 아래 코드가 뭐를 의미하는지 간략하게 설명 한다

  - 첫번째는 컴파일 할때 동작 이름이 build c++ 이고, command는 터미널 명령어를 의미한다

  - args의 경우 커맨드 뒤에 오는 인자 값을 설정하는 녀석인데

  -저기 workspaceRoot가 현재 작업하는 폴더명을 의미하고 fileBasenameNoExtension은 현재 작업하는 파일명이다

   즉 cpp의 이름이 출력된다

  - group은 없어도 되는데 저거는 추후에 필요에 따라 업데이트 하도록 하겠다 일단 복사해서 붙여 넣자

 

 

//C++ 11 사용자

{
       // See https://go.microsoft.com/fwlink/?LinkId=733558
       // for the documentation about the tasks.json format
       "version": "2.0.0",
       "tasks": [
           {
               "label": "build c++",
               "type": "shell",
               "command": "g++",
               "args": [
                   "-g",
                   "-o",
                   "${workspaceRoot}/${fileBasenameNoExtension}.out",
                   "${file}"
               ],
               "group": {
                   "kind": "build",
                   "isDefault": true
               }
           },
           {
               "label": "exec",
               "type": "shell",
               "command": "${workspaceRoot}/${fileBasenameNoExtension}.out",
               "group": {
                   "kind": "build",
                   "isDefault": true
               }
           }
       ]
   }
   

 

//C++ 17 사용자

{
       // See https://go.microsoft.com/fwlink/?LinkId=733558
       // for the documentation about the tasks.json format
       "version": "2.0.0",
       "tasks": [
           {
               "label": "build c++",
               "type": "shell",
               "command": "clang++",
               "args": [
                   "-std=c++17",
                   "-stdlib=libc++",
                   "${workspaceFolder}/${fileBasenameNoExtension}.cpp",
                   "-o",
                   "${workspaceFolder}/${fileBasenameNoExtension}.out",
                   "--debug"
               ],
               "group": {
                   "kind": "build",
                   "isDefault": true
               }
           },
           {
               "label": "exec",
               "type": "shell",
               "command": "${workspaceFolder}/${fileBasenameNoExtension}.out",
               "group": {
                   "kind": "build",
                   "isDefault": true
               }
           }
       ]
   }
   

 

 

 

2. 복사가 완료 되었으면 정상적으로 동작하는지 확인하자

  - 테스트 방법은 다음과 같다

  - 오른쪽 마우스 클릭해서 New File로 만들고 싶은 cpp파일을 만들면 된다

  - 만든 cpp 파일에 코드를 작성하고 컨트롤 + 쉬프트 + b 를 누르면 다음 두 항목이 나온다

  - build c++의 경우 컴파일 작업을 해주고 exec는 컴파일 된 파일을 실행한다.

  - 빌드 후 터미널을 확인하면 출력이 잘되는 것을 확인 할 수 있다.

3. 대망의 디버깅을 설정해보도록 하겠다

 - 벌레 모양 누르고 초록색 재생 버튼 누르면 다음과 같은 항목이 뜬다

 - 우선 C++ (GDB/LLDB) 눌러주자

 

4. launch.json이라는 파일이 생성 되는데 이놈이 디버깅 설정하는 놈이다. 조져주자

  - 이것을 복사하면 된다

  - 설명을 약간 곁들이자면 다른거 다 필요없고 3개만 설명하겠다

  - program의 경우 디버깅 할 파일 이름을 설정하는 것이다

  - stopOnEntry 는 false, true값으로 설정하는데, false 값 해놓으면 처음 디버깅 시작하기 전에 중지 하지 않고 설정한 중단 값으로

    바로 이동하고, true 해놓으면 프로그램 시작 과정에서 한번 멈추고 시작한다.

  -preLaunchTask는 디버깅 하기전에 실행할 작업을 의미하는데 build 작업을 설정 해주면 매번 빌드 하지 않아도 디버깅 시 빌드 하고
   실행하여 편리하다.

{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "lldb",
            "request": "launch",
            "name": "Launch",
            "program": "${workspaceFolder}/${fileBasenameNoExtension}.out",
            "args": [],
            "stopOnEntry": false,
            "preLaunchTask": "build c++",
            "cwd": "${workspaceFolder}"
        }
    ]
}

 

5. 최종 결과물

 - f5번을 누르면 다음 중단점으로 바로 이동 한다

 

이거 하느라 3일동안 코딩도 못하고 삽질만 해서 열받는다.

다들 이 글을 보고 빠르게 환경을 구축해서 알고리즘을 조져주자.

 

사용하다가 필요한 부분이 생기면 그때 업데이트 예정