맥북 vscode c언어 - maegbug vscode ceon-eo

Windows 기반의 OS를 지금까지 몇 년간 사용하다가, 최근에 Mac을 구매했다.

Mac OS의 화려하고 심플한 매력에도 불구하고,

오랫동안 Windows OS에 길들여진 사람들은 Mac 본체를 사용하면서 부트캠프 등으로 Windows로 가게 된다고 하여,

나는 최대한으로 Mac OS로 다 해보겠다는 의지로 약 3주 째 Mac OS에 적응 중이다.

지금까지는 나름 꽤 적응이 되어, 오히려 가끔 Windows OS가 설치되어 있는 그램 노트북을 사용할 때 벌써 키보드의 위치가 헷갈릴 정도가 되었다. 하지만, 컴퓨터공학을 전공하고 있는 내가 Mac을 구매하는 데에 가장 망설여졌던 이유인, '코딩'을 하기 위해서는 Windows를 사용할 때보다는 자료가 적어 나아가는 데에 조금 어려움이 있었다.

이번 포스팅에서는 가장 기본 단계인 VS code 설치 및 C/C++언어를 사용할 수 있는 환경을 설정해주는 과정을 설명하려고 한다.

여기저기 사이트에서 배운 방법을 모아서 적은 글이니, 혹시 나처럼 헤맨 Mac 컴린이 사용자에게 도움이 되었으면 좋겠다.


우선, Mac용 Visual Studio Code를 다운받는다.

https://code.visualstudio.com/

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

맥북 vscode c언어 - maegbug vscode ceon-eo

이 주소에서 "Download for Mac"을 클릭하여 VS code를 설치해준다!

맥북 vscode c언어 - maegbug vscode ceon-eo

약 1분이 걸려 설치가 완료되어, 압축파일을 해제해주면 위와 같은 Visual Studio Code 아이콘을 확인할 수 있다.

아이콘 클릭을 통해 아래 사진과 같은 Visual Studio Code 초기화면을 만나게 된다.

맥북 vscode c언어 - maegbug vscode ceon-eo
VS code 초기 화면

VS code는 컴파일러 등을 직접 설치해줘야 사용 가능하므로 우선 그 단계를 진행할 것이다.

초기화면의 왼쪽상단바 5번째 아이콘 Extensions를 클릭하여, 검색을 통해 언어 사용을 위한 C/C++ 과 한국어 개발환경을 위한 Korean Language Pack for Visual Studio 를 다운받는다. Korean Language는 선호에 따라 다운 받지 않아도 무방!

맥북 vscode c언어 - maegbug vscode ceon-eo
extensions 설치

이제, 설치는 완료 되었다. 그 다음 왼쪽바 젤 위의 탐색기에서 폴더 열기를 클릭하여 앞으로의 코딩 내용을 저장할 공간을 선택해준다. 

설치가 완료되면 아래와 같이 보여지며, 본인은 Algorithms라는 폴더를 만들어 작업 폴더로 지정해주었다.

맥북 vscode c언어 - maegbug vscode ceon-eo

 Windows OS에서 몇 년 전에 Visual Studio를 처음 설치할 때는 사실 별다른 과정 없이 본격적인 코딩을 시작할 수 있었는데, Mac에서는 아무리 위에서 C/C++ 패키지를 다운 받았다고 해도 컴파일이 되지 않는다. 이를 해결하는 동안 여기저기 사이트를 참고해보았지만, 결국 잘 되지 않아 5번째.. 정도만에 성공하였다. 이 글을 보고 계신, 아직 설치를 하지 않은 분이라면 (나처럼..) 먼저 설치해보다가 다른 튜토리얼처럼 안되어 고생하지 말고, 우선 여러 개의 글을 정독한 뒤에 설치과정을 진행하셨으면 좋겠다..

맥북 vscode c언어 - maegbug vscode ceon-eo
.c 파일 생성 및 기본적인 코드 입력

 본격적인 컴파일을 진행하기 위한 간단한 C파일을 생성해주었다. 앞서 생성한 작업폴더 이름이 적혀 있는 줄에 4개의 아이콘이 있는데, 첫 번째가 '새 파일 생성', 두 번째가 '새 폴더 생성'이므로, 첫번째 아이콘을 클릭하여 'Hello.c'라는 파일을 생성해주면 된다. 

그리고 우측에서 보이듯이, 간단한 C코드를 작성해주었다.

(코딩 시에 제대로 그 구간을 지나가며 작동하는 지 디버깅할 때 끊임없이 사용하는 printf("Hello").....)

 이제부터 우리의 목표는 컴파일을 하여 Hello가 출력되게 하는 것!

터미널 > 작업구성 > 템플릿에서 tasks.json 파일 만들기 > Others 를 클릭하여 tasks.json 생성!

(본인은 아무리 해도 작업구성을 들어가도 '템플릿에서 tasks.json 파일 만들기'라는 항목을 찾을 수 없었는데, 이유가 이미 생성되었기 때문이라고 한다.. 아마도 여기저기 시도해보다가 의도치 않게 만들어진 것 같은데 해결방법을 찾지 못하여 결국 VS code 자체를 다시 설치하는 방법을 선택하였다. 해결방법 아시는 분 도움을 주세요,,,)

맥북 vscode c언어 - maegbug vscode ceon-eo
'템플릿에서-' 클릭!
맥북 vscode c언어 - maegbug vscode ceon-eo
tasks.json가 생성된 모습

이 파일은 "이 파일은 앞으로 우리가 빌드할 명령어들을 파일로 저장해놓은 형태라고 생각하시면됩니다.

따라서 tasks.json 파일로 원하는 컴파일 명령어들을 만들어 사용자 편의대로 컴파일을 할 수 있다는 것입니다." 이라고 내가 참고한 사이트에서 설명해주셨다! 전문적인 설명은 아래 사이트에서 읽어볼 수 있다. 잘 설명해주셔서 감사합니다 ㅠㅅㅠ

https://csdiary.tistory.com/2

Mac에서 VSCode C/C++ 세팅

오늘은 C/C++ 공부에 앞서 VSCode를 기반으로한 개발환경 세팅을 해보려고 합니다. 우선 맥에 VSCode를 깔아주세요. VSCode 설치 주소 https://code.visualstudio.com Visual Studio Code - Code Editing. Redefin..

csdiary.tistory.com

맥북 vscode c언어 - maegbug vscode ceon-eo
{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "shell",
            "label": "C bulid for clang",
            "command": "clang",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "options": {
                "cwd": "${workspaceRoot}"
            },
            "presentation": {
                "clear": true
            },
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "problemMatcher": []
        },
        {
            "type": "shell",
            "label": "C++ bulid for clang++",
            "command": "clang++",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "options": {
                "cwd": "${workspaceRoot}"
            },
            "presentation": {
                "clear": true
            },
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "problemMatcher": []
        },
        {
            "type": "shell",
            "label": "execute",
            "command": "${fileDirname}/${fileBasenameNoExtension}",
            "group": "test",
            "presentation": {
                "clear": true
            }
        }
    ]
}

그리고 taks.json 파일을 위의 코드로 대체해주면 되는데, 나는 불안해서 원래 있던 것을 주석처리 해준 뒤에 (나중에) 실행시켰는데 잘 되는 걸 보니 여러분은 그냥 믿고 하셔도 될 것 같습니당

이제 ⌘+⇧+B 를 통해 빌드를 하면 된다. C파일을 다루고 있으므로, 'C build for clang'을 클릭!

맥북 vscode c언어 - maegbug vscode ceon-eo

그러면, 위와 같이 파일 두 개가 생성되는데, 앞선 참조 사이트에 의하면

"Hello.dSYM은 심볼파일으로 디버깅할때 필요한 정보가 들어가있습니다.

Hello는 실행파일입니다." 라고,, 설명을 해주셨다. 코딩은,, 초기설정부터 너무 어려운 것,,,,

그 다음 Code > 기본 설정 > 바로가기 키를 클릭하여, test를 검색해서 아래와 같이 기억하기 편하게 키 바인딩을 해준다. 

본인은 Alt + R 로 설정해두었으며, 앞서 설명한 빌드(⌘+⇧+B)도 Alt + C 로 바꾸어주었다. 

맥북 vscode c언어 - maegbug vscode ceon-eo
키 바인딩

그 후, Alt + R 키를 통해 테스트 작업을 실행해보면, 아래 이미지와 같이 실행할 테스트 작업을 선택하라고 하는데 여기서 'execute' 선택.

맥북 vscode c언어 - maegbug vscode ceon-eo
실행할 테스트 작업 선택 - execute

이 과정을 거치면, VS code 창 하단의 터미널에 아래와 같이 'Hello'가 출력되었다. 앞서 언급한 우리의 목표 성공!

감격 .... ㅠ 이 간단한 것이 안돼서 몇 번을 헤맸던 건지...!!!

맥북 vscode c언어 - maegbug vscode ceon-eo
Hello 출력 !!!!!

하지만, 여기서 끝이 아니다. 디버깅도 따로 설정해줘야한다. 

Mac에서 Xcode를 다운받으면, 그와 동시에 lldb가 설치된다고 하는데, 나는 무슨 이유인지 작동이 되지 않아서,

Extensions에서 CodeLLDB를 다운받아주었다. 이유는 평점이 높은 것 중에 다운 수가 많아서...랄까 (아주 아마추어적인 이유)

맥북 vscode c언어 - maegbug vscode ceon-eo
CodeLLDB 설치

그 다음은, 디버깅 화면으로 가볼 것이다.

아래의 이미지에서 보이듯이, 좌측 바의 4번째 벌레 모양의 버튼이 바로 디버깅 버튼인데,

거기서 create a launch.json file > C++(GDB/LLDB) !

맥북 vscode c언어 - maegbug vscode ceon-eo
Debugging 초기화면

그럼, 아래처럼 launch.json 코드가 보여지는데, 앞서 한 것처럼 이 부분을 아래의 코드로 바꾸어준다!

맥북 vscode c언어 - maegbug vscode ceon-eo
launch.json
{
    "version": "0.2.0",
    "configurations": [

        {
            "type": "lldb",
            "request": "launch",
            "name": "Lldb debug",
            "program": "${fileDirname}/${fileBasenameNoExtension}",
            "args": [],
            "cwd": "${workspaceRoot}"
        }
    ]
}

여기까지 잘 따라오셨다면~! 이제 끝입니다.. 정말루요..

앞으로 VS code를 더 다뤄보면서 제가 어려운 부분이 생겼을 때, 다시 열심히 조사하고 찾아올게요 ~~~~~~~!