내맘대로 공부기록.

[ STUDY ]

[ 환경설정 ] Visual Studio Code 에서 C++ 컴파일 디버그 환경 설정 방법(맥 버전.)

fwanggus 2021. 3. 2. 00:23

1. 다음을 설치 🛠

 

✅  Visual Studio Code(IDE)

 

Visual Studio Code - Code Editing. Redefined

Visual Studio Code is a code editor redefined and optimized for building and debugging modern web and cloud applications.  Visual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows.

code.visualstudio.com

 

✅  컴파일러 : g++

터미널 실행 후 다음을 입력하면, 설치 여부 확인(버전 및 실행파일 위치 확인)이 가능하며 설치되어 있지 않을 경우에는 설치가 진행된다.

g++ -v

 

✅  디버거 : lldb (위키피디아 설명)

컴파일러와 마찬가지로 터미널 환경에서 아래를 입력한다.

lldb

 

디버거 실행.

 

위 그림과 같은 상태이면 정상적으로 디버거가 작동하는 것이다. 지금 디버깅 모드로 들어간 상태이기 때문에, 알파벳 q를 입력하여 디버깅 모드에서 빠져나오면 됩니다. (설치되어 있지 않을 경우엔 설치가 진행될 겁니다.)

 

 

✅  익스텐션 설치(2개)

 

아래 그림과 같이 비주얼 스튜디오 코드의 익스텐션을 설치해줍니다.

 

익스텐션 마켓플레이스.

 

 

C/C++

 

 

CodeLLDB

 

 

 

2. 빌드(컴파일) 환경 설정 및 테스트

 

비주얼 스튜디오 코드를 실행시킨 후, main.cpp 파일을 하나 만들어 줍니다. 컴파일, 디버깅 테스트를 위해 아래와 같이 입력해줍니다.

 

✅  main.cpp

#include <iostream>

using namespace std;

int main()
{
    cout << "\nhello world ! " << endl;
    int num1 = 10;
    int num2 = 0;

    num2 = num1 * 7;
    cout << "num2 : " << num2 << endl;
    return 0;
}

 

command + shift + B 입력으로, 빌드 조건을 설정할 수 있어요. 여기서는 g++ 컴파일러를 설치했기 때문에 g++ 컴파일러를 사용하겠습니다. 아래 표시된 부분에서 오른쪽 부분의 톱니바퀴 부분을 클릭해주세요.

 

 

컴파일러 선택.

 

 

그럼, tasks.json 파일이 생성되고, 사실 여기서 컴파일을 하기 위한 준비는 모두 끝났습니다. 각자 개인의 성향에 맞게 컴파일된 결과 파일 이름을 설정하거나 arg 부분에 추가하고 싶은 커맨드를 입력하면 될 것 같아요. 

단, 주의할 점은 main함수가 있는 cpp파일을 클릭해서 화면에 파일이 활성화된 상태에서 컴파일을 해야 돼요. 그렇지 않으면 링킹 에러가 날 수도 있습니다.

 

 

tasks.json

 

 

tasks.json 파일의 역할은 터미널에서 일일이 적어주는 명령어의 각 부분들을 나누어서 지정이 가능하게 한 후, 컴파일 커맨드로써 연결시켜 주는 역할을 합니다. 그래서 현재 상태의 명령어들을 그냥 터미널에 타자로 적어서 실행시킬 수 도 있어요.

 

g++ -g main.cpp -o main.out

 

아무 문제없이 잘 실행이 됩니다.

 

 

이번엔 비주얼 스튜디오 코드를 이용해서 컴파일해보겠습니다. command + shift + B를 입력해주세요. 그럼, 우리가 설정한 컴파일러 하나만 풀다운으로 보여줍니다. 엔터를 치면, 컴파일이 진행됩니다.

 

 

사전에 설정한 컴파일러만 보여줌.
비쥬얼 스튜디오 코드 컴파일 결과.

 

 

3. 디버깅 환경 설정 및 테스트

 

✅  Run ➡️ Add Configuration 선택

 

디버깅 구성파일 추가.

 

 

각자 디버거에 맞게 선택하면 될 것 같은데요. 저 같은 경우는 가장 위 항목인 "C++ (GDB/LLDB) "를 선택했습니다.

 

 

디버거 선택.

 

launch.json 이 생성되었습니다. 중요한 점은, 디버거에서 디버깅에 사용할 실행파일이 컴파일 세팅에서 작성한 tasks.json의 실행파일(아웃풋파일) 형태와 같아야 한다는 점인데요. 아래 그림의 부분입니다.

 

tasks.json에서 생성해주는 실행파일과 launch.json에서 "program" 이 가리키는 파일의 형태가 같아야 합니다.

 

좌:tasks.json 우 : launch.json

 

하지만, 나는 수동으로 컴파일하고, 디버깅만 세팅 파일을 이용해서 하겠다 하시는 분들은 굳이 컴파일과 디버깅의 세팅 파일에서 실행파일 포맷을 같지 않게 해 줘도 상관은 없습니다. 세팅 파일의 개념만 잘 파악하시면 필요에 맞게 변경해가면서 활용하실 수 있을 것 같습니다.

 

✅  디버깅 테스트 결과, num1과 num2의 값을 보여주는 것을 확인할 수 있습니다.

 

 

디버깅 테스트 결과.

 

 

반응형