[MacOs] VS code에서 C/C++ 실행 및 디버깅하기

Vaughan·2022년 6월 30일
18

개발환경설정

목록 보기
1/2
post-thumbnail

💫 도입

나는 작년 겨울 더이상 고성능 작업(안드로이드 개발, 유니티...)을 버티지 못하는 레노버 노트북을 견디지 못하고 결국 맥북 에어 M1을 구입했었다.

그 당시에는 C/C++을 거의 사용하지 않았고 백준에서 간간히 문제를 풀때는 온라인 코딩 사이트를 사용했었기에 신경쓰지 않았으나 이번 여름방학때 C++을 본격적으로 공부하고자 다짐했더니 문제가 발생했다.

윈도우 환경에서는 Visual Studio에서 편하게 C/C++ 작업을 할 수 있게 지원해주지만 맥에서의 Visual Studio는 윈도우 버전과 전혀 달라 그런 환경을 지원해주지 않았다.

그렇다고 맥의 기본 소프트웨어인 Xcode를 그다지 사용하고 싶진 않았고... 그래서 방법을 찾다가 VScode에서 실행할 수 있다는 정보를 보고 C/C++ 개발환경을 맥에서도 구축할 수 있었다.

관련된 정보들이 산재되어있어서 찾기 어려웠기에 추후에 다시 필요한일이 발생할 때 찾아볼 수 있도록 기록한다.


💫 VScode Extensions

맥에서 VScode를 설치했다면, 각종 확장 기능을 제공해주는 Extensions 탭으로 이동한다.

설치해야할 Extension은 총 3가지이다.

  1. C/C++
  2. Code Runner

아래에서 빨간색 상자로 표시한 Extension들을 모두 Install 해준다.

Extensions

설치를 완료했다면 Code Runner에서 편하게 C/C++을 실행할 수 있도록 설정해준다.

아래 절차를 따라 설정에 들어간다. (톱니바퀴 - Extension Settings)
Setting

  • Terminal에서 실행할 수 있도록 체크
  • C/C++을 실행할 수 있도록 .json 파일 수정
    • Edit in settings.json 클릭
    • 기존 파일에 아래 명령어 추가
 "code-runner.executorMap": {
        "c": "cd $dir && gcc $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt",
        "cpp": "cd $dir && g++ -std=c++14 $fileName -o $fileNameWithoutExt && $dir$fileNameWithoutExt"
    }

C/C++ 말고 다른언어도 CodeRunner로 실행할 수 있게 하려면 다른언어에 대한 명령어를 "code-runner.executorMap" 에 더 추가해준다.

 {
    "code-runner.executorMap": {
        "javascript": "node",
        "php": "C:\\php\\php.exe",
        "python": "python",
        "perl": "perl",
        "ruby": "C:\\Ruby23-x64\\bin\\ruby.exe",
        "go": "go run",
        "html": "\"C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe\"",
        "java": "cd $dir && javac $fileName && java $fileNameWithoutExt"
    }
}

위의 설정을 마친뒤 .c, .cpp 파일에서 실행버튼을 누르거나 Run Code를 실행하면 C/C++ 파일이 잘 실행되는 것을 확인할 수 있다.


💫 디버깅환경 만들기

위에서 진행한 과정은 C/C++ 파일을 실행할 수 있게해주지 디버깅을 지원해주지는 않는다. 따라서 지금부터는 디버깅을 할 수 있도록 세팅을 진행할 것이다.

다만, 디버깅을 하기위해서는 code runner의 실행파일이 필요하기 때문에 최소 한번은 코드를 실행시켜줘야한다.

  • .c, .cpp 파일에서 톱니바퀴 버튼을 누르거나 디버깅 단축기를 누르면 디버그 구성을 선택할 수 있는 창이 뜬다.
  • 먼저 C++ (GDB/LLDB)를 선택해준다.
  • 이어서 뜨는 창에서 g++ build and debug active file을 선택한다. (나는 이름 수정을 해둔상태라 한글로 표기된다.)
  • 잘 진행했다면 launch.json 파일이 생성될 것인데, 파일 그대로 저장하고 다시 디버그 구성 창을 띄우고 다시 g++ build and debug active file을 선택한다.
  • 이번에는 tasks.json 파일이 생성되는데, 최신버전도 지원해주기 위해서 "args" key의 "-g" 아래에 "-std=c++14"를 추가하고 저장한다.
{
    // See https://go.microsoft.com/fwlink/?LinkId=733558 
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "type": "shell",
            "label": "g++ build active file",
            "command": "/usr/bin/g++",
            "args": [
                "-g",
                "-std=c++14",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "options": {
                "cwd": "/usr/bin"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": "build"
        }
    ]
}

위 과정을 잘 따라왔다면, 이제 정상적으로 VScode에서 디버깅을 할 수 있을 것이다.


참고한 글

profile
우주의 아름다움도 다양한 지식을 접하며 스스로의 생각이 짜여나갈 때 불현듯 나를 덮쳐오리라.

2개의 댓글

comment-user-thumbnail
2022년 12월 30일

하 ㅠ 진짜 다른 글로 했다가 디버깅 안되서 시간 버리다 이 글로 해결봤습니다. 제 시간을 애껴주셔서 감사합니다

답글 달기
comment-user-thumbnail
2023년 10월 18일

정보 감사합니다!

답글 달기