Vscode c언어 맥 - vscode ceon-eo maeg

arg 항목에서 1번 주석을 해제한 상태에서 2번 주석을 해제하시면 stdin 대신 파일 입력을 사용할 수 있고, 그때 사용하는 파일명을 설정할 수 있습니다. 위에서는 sample_input.txt로 정해져있습니다.
이 주석을 해제하고 sample_input.txt 파일을 만들지 않으시면 아래와 같은에러가 발생합니다. 인풋 파일이 없다는 에러이니 .cpp파일과 같은 폴더에 파일을 만들어 주세요.
[에러 그림]

파일 출력 코드

     ">",
     "${fileDirname}/sample_output.txt"

arg 항목에서 1번 주석을 해제한 상태에서 2번 주석을 해제하시면 stdout대신 파일 출력을 사용할 수 있고, 출력파일 명을 설정할 수 있습니다. 위에서는 sample_output.txt로 정해주었습니다. 출력파일은 파일명을 작성해두시면 자동으로 생성됩니다.

원하는 옵션을 선택하신 후에 task.json 파일을 저장(⌘(Command) + S) 해주세요

4.2 C/C++ 파일 빌드하기

다시 cpp 파일을 열어서 ⌘(Command) + ⇧(Shift) + B 를 눌러주시면 g++로 빌드 됩니다.

Errors

  • 아래와 같은 에러는 cpp파일을 선택하지 않은 상태에서 빌드하면 발생합니다. 종종 json 파일을 수정하고 바로 단축키를 누르는 실수를 할 수 있는데 json은 컴파일이 안되어서 아래와 같은 에러가 발생합니다. 따라서 cpp 파일을 선택한 뒤 빌드해주셔야 합니다.

    ld: warning: ignoring file /경로.../.vscode/tasks.json, building for macOS-x86_64 but attempting to link with file built for unknown-unsupported file format ( 0x7B 0x0A 0x20 0x20 0x20 0x20 0x2F 0x2F 0x20 0x53 0x65 0x65 0x20 0x68 0x74 0x74 )
    Undefined symbols for architecture x86_64:
    "_main", referenced from:
       implicit entry/start for main executable
    ld: symbol(s) not found for architecture x86_64
    clang: error: linker command failed with exit code 1 (use -v to see invocation)
    The terminal process terminated with exit code: 1
  • cpp 파일에 아무 내용도 작성을 안하시면 아래와 같은 에러가 발생합니다. (정확히는 main 함수가 없으면 발생합니다.) 기본 코드 Hello world라도 작성해야 빌드할 수 있습니다.

    지금까지는 나름 꽤 적응이 되어, 오히려 가끔 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

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

    Vscode c언어 맥 - vscode ceon-eo maeg

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

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

    Vscode c언어 맥 - vscode ceon-eo maeg
    VS code 초기 화면

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

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

    Vscode c언어 맥 - vscode ceon-eo maeg
    extensions 설치

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

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

    Vscode c언어 맥 - vscode ceon-eo maeg

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

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

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

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

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

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

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

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

    Vscode c언어 맥 - vscode ceon-eo maeg
    '템플릿에서-' 클릭!
    Vscode c언어 맥 - vscode ceon-eo maeg
    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

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