Skip to content

fix: Windows에서 g++ 미탐지로 C++ 로컬 테스트 실행 불가 (#10)#11

Merged
dj258255 merged 1 commit into
mainfrom
fix/windows-gpp-detection
Jul 6, 2026
Merged

fix: Windows에서 g++ 미탐지로 C++ 로컬 테스트 실행 불가 (#10)#11
dj258255 merged 1 commit into
mainfrom
fix/windows-gpp-detection

Conversation

@dj258255

@dj258255 dj258255 commented Jul 6, 2026

Copy link
Copy Markdown
Owner

Fixes #10

문제

Windows에서 MinGW가 설치되어 cmd·VS Code에서는 g++가 정상 동작해도, 플러그인에서 C++ 로컬 테스트를 실행하면 g++를 찾지 못함.

원인

  1. gppPath 탐지 후보가 macOS/Linux 경로뿐이라 Windows에서는 where g++(IDE 프로세스 PATH 검색)에만 의존
  2. IDE 프로세스의 PATH는 시작 시점 스냅샷이라, PATH 변경 전에 실행된 IntelliJ/Toolbox에서는 where g++가 실패
  3. findExecutable이 탐지 실패 시 도구 이름을 그대로 반환해 not-found 안내 분기가 죽은 코드였고, 실제로는 원시 IOException(CreateProcess error=2)이 노출됨. 안내 문구도 macOS 전용(xcode-select --install)이었음

변경 사항

  • Windows g++ 후보 경로 추가: C:\msys64\ucrt64\bin, C:\msys64\mingw64\bin, C:\MinGW\bin, C:\TDM-GCC-64\bin, C:\ProgramData\chocolatey\bin (기존 로직이 .exe 확장자 보정 처리)
  • findExecutable 탐지 실패 시 빈 문자열 반환: 8개 언어 전부의 not-found 안내 분기가 실제로 동작하게 됨
  • g++ not-found 메시지 OS별 분기: Windows는 MinGW-w64 설치 + PATH 등록 + IDE 완전 재시작(Toolbox 포함) 안내, macOS는 기존 xcode-select 안내 유지
  • executeProcess 시작 실패 방어선: ProcessBuilder.start()의 IOException을 잡아 원시 오류 대신 설치/PATH/재시작 안내 출력

테스트

  • ./gradlew test --tests com.codingtestkit.service.CodeRunnerTest 통과 (기존 테스트는 경로 미탐지 시 스킵하도록 되어 있어 반환값 변경과 호환)

- g++ 탐지 후보에 Windows 설치 경로 추가 (MSYS2 UCRT64/MINGW64, MinGW, TDM-GCC, Chocolatey)
- findExecutable 탐지 실패 시 도구 이름 대신 빈 문자열 반환
  (도달 불가였던 언어별 not-found 안내 분기 정상화)
- g++ not-found 메시지 OS별 분기: Windows는 MinGW 설치·PATH 등록·IDE 완전 재시작 안내
- executeProcess 프로세스 시작 실패(IOException) 시 원시 CreateProcess 오류 대신
  설치/PATH/재시작 안내 메시지 출력
@dj258255 dj258255 merged commit 0b2a59a into main Jul 6, 2026
2 checks passed
@dj258255 dj258255 deleted the fix/windows-gpp-detection branch July 6, 2026 15:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Windows에서 g++ 컴파일러를 찾지 못해 C++ 로컬 테스트 실행 불가

1 participant