-
[c++] vscode에서 c++ 설치 the prelaunchtask c/c++: gcc build active file terminated with exit code -1 에러 해결Programming 기초/C++ 2024. 7. 19. 15:50
https://www.youtube.com/watch?v=UqCZda8DLGc&t=9792s
위 영상을 참고했다.
https://code.visualstudio.com/docs/cpp/config-mingw
먼저 g++을 설치해야하는데, window에 경우 MinGW를 통해 설치한다.
사이트에서 아래 설치파일을 다운받아서 실행하고
기본 설치위치 그대로 쭉 설치해준다.
설치가 완료되면 MSYS2 터미널 창이 뜬다.
pacman -S --needed base-devel mingw-w64-ucrt-x86_64-toolchain
명령어 입력 후 default all 머시기 뜨면 enter 누르고
y/n 뜨면 y 눌러서 쭉 진행해준다.
마지막에 g++ 제대로 설치되었는지, 버전 확인해준다.
g++ -v
마지막 줄에 gcc version 13.2.0 (Rev6, Built by MSYS2 project) 라고 버전을 알려준다.
잘 설치되었다.
이후 vscode 설치해주고,
extension에서 c++ 설치해주고
커맨드 팔렛트(ctrl+p)에서 >c++ edit configuration (UI) 에 들어가서 컴파일러 경로를 g++로 지정해주자.
스크롤 내려서 아래와 같이 IntelliSense mode를 window-gcc-x64로 바꿔준다.
이제 코드로 돌아가서 디버깅해보자. F5를 누르면 아래와 같이 팝업이 생긴다. GDB/LLDB를 누른다.
the prelaunchtask c/c++: gcc build active file terminated with exit code -1
위와 같은 팝업과 함께 아래와 같이 터미널에 에러가 떴다.
찾아봤지만 아래 깃헙 이슈에서 누군가 비슷한 에러를 물어봤지만, 나와 조금 상황이 달랐다.
https://github.com/microsoft/vscode-cpptools/issues/11927
내 터미널 에러를 보면 아래와 같다.
Starting build... cmd /c chcp 65001>nul && C:\msys64\ucrt64\bin\g++.exe -fdiagnostics-color=always -g C:\coding\cpp\test.cpp -o C:\coding\cpp\test.exe Assembler messages: Fatal error: can't create C:\Users\������\AppData\Local\Temp\ccdan74D.o: No such file or directory Build finished with error(s). * The terminal process terminated with exit code: -1. * Terminal will be reused by tasks, press any key to close it.
경로에 한글이 들어가서 못 찾는 건데, 포맷하기는 귀찮..
chatGPT의 도움을 받아 MSYS2 및 MinGW에서 기본적으로 사용하는 임시 디렉토리 경로에 한글 또는 특수 문자가 포함되어 있어 발생하는 문제임을 알게되었고, 환경변수를 바꿔줘야 했다.
TEMP와 TMP의 환경 변수를 사진과 같이 C드라이브 밑에 있는 Temp 폴더로 변경해주었다.
이후 MSYS2 UCRT64 터미널을 열어서 export 명령어로 환경변수를 추가해주었다.
// nano 편집기로 bashrc 열기 nano ~/.bashrc
위 사진처럼 편집창 마지막에 두 줄을 추가해주었다.
export TMP=/c/Temp export TEMP=/c/Temp
기나긴 과정을 거쳐 드디어 hello world 글자를 터미널에서 확인할 수 있었다.
데스크톱은 우분투를 사용하고 있어서 정말 쉽게 vscode에서 c++를 사용할 수 있었던 반면,, 노트북은 윈도우였고, 한글 경로로 인해 아주 힘들게 vscode에서 c++을 컴파일할 수 있었다.
-끝-
'Programming 기초 > C++' 카테고리의 다른 글
c++ 백준 1676번 팩토리얼의 0의 개수 (0) 2024.08.20 STL 컨테이너 (0) 2024.08.11 [c++] 참조자형식 "&" (0) 2024.07.19 [C++] cin.ignore와 버퍼에 대한 이해 (0) 2024.06.28