본문 바로가기

IDE/Visual Studio

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

주요 아젠다

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

shell
닫기
[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 파일을 실행하는 것을 알 수 있습니다.

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

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

shell
닫기
> 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++가 설치되었는지 확인합니다.

shell
닫기
> 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를 사용해 코드가 정상적으로 실행되는지 확인합니다.

shell
닫기
[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 실행 인자를 의도적으로 실패하게끔 수정하고 테스트합니다.

json
닫기
"cpp": "cd $dir && g++ abcdef"

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

shell
닫기
[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