본문 바로가기

IDE/Visual Studio

Code Runner 관련 오류 메시지가 깨져서 출력 되는 현상

이 문서의 내용

    주요 아젠다

    Visual Studio Code에서 Code Runner Extension 사용 시 관련 오류 메시지가 깨져서 출력되고 있습니다.

    [Running] cd "c:\Users\namep\OneDrive\바탕 화면\HelloProject\" && g++ -std=c++17 *.cpp -o main && "c:\Users\namep\OneDrive\바탕 화면\HelloProject\"main
    'g++'��(��) ���� �Ǵ� �ܺ� ����, ������ �� �ִ� ���α׷�, �Ǵ�
    ��ġ ������ �ƴմϴ�.
    
    [Done] exited with code=1 in 0.05 seconds
    더보기

    이 프로젝트의 개발 환경

    • 개발 언어 및 주요 환경
      • Visual Studio Code 1.86.0
      • C++17
    • 기타 환경
      • Windows 10
      • Code Runner Extension v0.12.1

    주요 원인

    Code Runner는 VS Code 환경에서 여러 언어의 실행과 디버깅을 지원하지만, 각 언어 사용에 있어 필요한 요소까지는 구성해주지 않습니다.

    따라서 사용하는 언어의 필수 요소는 직접 구성해야 합니다.

    Extensions | Code Runner | Manage | Extension Settings에서 Code-runner: Executor MapEdit in settings.json으로 진입합니다.

    이 프로젝트에서는 C++17을 사용하여 개발합니다.

    cpp 항목을 확인해보면 G++를 통해 cpp 파일을 실행하는 것을 알 수 있습니다.

    "cpp": "cd $dir && g++ -std=c++17 *.cpp -o $fileNameWithoutExt && $dir$fileNameWithoutExt"

    CMD를 열고 G++가 설치되어 있는지 확인합니다.

    > gcc --version
    'gcc'은(는) 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는
    배치 파일이 아닙니다.

    Step 1: GCC/G++ 설치

    GCC는 VS를 사용하지 못하는 리눅스 환경에서의 C/C++ 개발을 위한 컴파일러입니다.

    이 프로젝트는 Windows OS에서 개발되고 있지만 Code Runner에서 G++를 실행하기 때문에 GCC 및 G++를 설치합니다.

    MinGW를 설치합니다. 그리고 mingw-developer-toolkit mingw32-gcc-base migw32-gcc-g++를 각각 체크박스 선택하고 Mark for Installation을 클릭합니다.

    상단 툴바에서 Installaion | Apply Changes를 사용해 Mark for Installaion 항목을 일괄 설치합니다. 수 분 정도가 소요됩니다.

    설치가 완료되면 환경 변수에서 PATH를 설정합니다.

    Window + R 단축키로 실행 창을 열고 sysdm.cpl ,3을 엽니다. 고급 | 환경 변수 | 시스템 변수에서 Path를 편집합니다.

    새로 만들기에서 C:\MinGW\bin을 추가합니다.

    새로운 CMD를 열고 정상적으로 G++가 설치되었는지 확인합니다.

    > gcc --version
    gcc (MinGW.org GCC-6.3.0-1) 6.3.0
    Copyright (C) 2016 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

    Step 2: Visual Studio Code 재실행 및 오류 메시지 테스트

    G++을 설치한 이후 VS Code를 재실행합니다. Code Runner를 사용해 코드가 정상적으로 실행되는지 확인합니다.

    [Running] cd "c:\Users\namep\OneDrive\바탕 화면\HelloProject\" && g++ -std=c++17 *.cpp -o main && "c:\Users\namep\OneDrive\바탕 화면\HelloProject\"main
    hello world
    
    [Done] exited with code=0 in 1.35 seconds
    더보기

    문제의 현상이던 문자 깨짐 현상은 더 이상 발생하지 않습니다.

    문자가 깨져서 출력된 오류 메시지의 내용이 G++ 설치를 요구하는 것으로 유추 할 수 있습니다. settings.json에서 Code Runner의 cpp 실행 인자를 의도적으로 실패하게끔 수정하고 테스트합니다.

    "cpp": "cd $dir && g++ abcdef"

    코드를 다시 실행하면 Code Runner 실행 오류 구문이 문자 깨짐 현상 없이 출력됩니다.

    [Running] cd "c:\Users\namep\OneDrive\바탕 화면\HelloProject\" && g++ abcdef
    g++: error: abcdef: No such file or directory
    g++: fatal error: no input files
    compilation terminated.
    
    [Done] exited with code=1 in 0.132 seconds