Appearance
문제 해결 (Troubleshooting)
이 문서는 실습 환경 구축 및 기초 터미널 사용(01~05) 과정에서 흔히 발생하는 문제와 그 해결 방법을 안내합니다.
Windows/WSL 설치 및 연결 문제
WSL 설치 실패 또는 오류 발생
- 증상:
wsl --install실행 시 설치가 멈추거나 오류 발생 - 원인: PC의 가상화(Virtualization) 기능 비활성화 또는 Windows 관련 기능 누락
- 해결 방법:
- 작업 관리자(Ctrl+Shift+Esc) 성능 탭에서 가상화 사용 여부 확인
- 비활성화 시 PC 재부팅 후 BIOS/UEFI 설정에서 Intel VT-x 또는 AMD-V 기능 활성화
- Windows 'Windows 기능 켜기/끄기'에서 'Linux용 Windows 하위 시스템' 및 '가상 머신 플랫폼' 체크
Ubuntu 24.04 또는 GCC 13 확인 불가
- 증상: WSL 설치 후 Ubuntu 버전이 24.04가 아니거나
g++ --version이 13.x가 아님 - 해결 방법:
- 버전 확인:
lsb_release -a명령어 사용 - Ubuntu 24.04가 아닌 경우 Microsoft Store에서 "Ubuntu 24.04" 검색 후 설치
- GCC 13 설치 명령어:bash
sudo apt update sudo apt install g++-13 - 기본 컴파일러 설정 명령어:bash
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-13 100
- 버전 확인:
VS Code에서 WSL 환경 연결 실패
- 증상: VS Code 좌측 하단 영역 또는 명령 팔레트에서 WSL 접속 실패
- 원인: WSL 확장 프로그램 누락 또는 WSL 백그라운드 프로세스 오류
- 해결 방법:
- VS Code Extensions에서 'WSL' (Microsoft) 설치 확인
- PowerShell에서
wsl -l -v로 Ubuntu 상태 확인 - PowerShell에서
wsl --shutdown실행 후 VS Code에서 재연결 시도
macOS 환경 세팅 문제
Homebrew 설치 실패
- 증상: Homebrew 설치 명령어 실행 시 진행 불가
- 원인: Command Line Tools 미설치
- 해결 방법:
- 터미널에서
xcode-select --install실행 - Homebrew 설치 스크립트 재실행
- 스크립트 완료 후 화면의 "Next steps" 지시사항을 따라 환경 변수 추가 명령어 실행
- 터미널에서
g++-13 명령어 인식 불가 및 clang++ 혼동
- 증상:
g++-13명령어 오류 발생 또는g++ --version결과가 Apple clang으로 표기됨 - 원인: gcc@13 패키지 미설치 또는 명령어 혼용
- 해결 방법:
- Homebrew로 컴파일러 설치:
brew install gcc@13 - macOS에서는
g++대신 반드시g++-13명령어를 사용하여 컴파일:bashg++-13 main.cpp -std=gnu++20 -O2 -pipe -Wall -o main
- Homebrew로 컴파일러 설치:
터미널 및 파일 관리 문제
권한 거부 (Permission denied)
- 증상: 명령어 실행 시 권한 거부 메시지 출력
- 원인: 대상 파일에 실행 권한이 없거나, Windows/WSL 환경에서 파일 시스템 경로 충돌 발생
- 해결 방법:
- 파일 실행 권한 부여:
chmod +x 파일명 - Windows/WSL에서는 반드시 Windows 경로(
/mnt/c/...)가 아닌 WSL 홈 경로(~)에서 실습 진행
- 파일 실행 권한 부여:
파일 또는 디렉토리 찾을 수 없음 (No such file or directory)
- 증상:
cd,ls, 컴파일 명령어 실행 시 파일 및 디렉토리 누락 오류 - 원인: 현재 작업 위치 불일치 또는 파일명 오타
- 해결 방법:
pwd명령어로 현재 경로 확인ls명령어로 목적지 파일 및 디렉토리 존재 유무 파악- 대소문자 구분 및 철자 확인
코드 컴파일 및 실행 문제
컴파일 명령 오류 (g++ 옵션 및 파일명 오타)
- 증상: 컴파일 과정에서 명령어 구문 오류 또는 파일 인식 실패
- 해결 방법:
- 지정된 컴파일 명령어를 정확하게 입력:
- Windows/WSL:
g++ main.cpp -std=gnu++20 -O2 -pipe -Wall -o main - macOS:
g++-13 main.cpp -std=gnu++20 -O2 -pipe -Wall -o main
- Windows/WSL:
main.cpp외의 파일 컴파일 시 입력 파일명과-o뒤의 출력 파일명을 실제 파일명에 맞게 변경
- 지정된 컴파일 명령어를 정확하게 입력:
파일 저장 누락으로 인한 이전 코드 실행
- 증상: 소스 코드를 변경했으나 실행 결과가 이전과 동일함
- 원인: VS Code 편집기에서 파일을 저장하지 않은 채 컴파일 수행
- 해결 방법:
- 단축키
Ctrl+S(macOS:Cmd+S)로 파일 저장 확인 - VS Code 탐색기 탭에서 파일명 우측의 흰색 원형 아이콘(미저장 표시) 유무 확인
- 단축키
프로그램 무한 루프 및 강제 종료 방법
- 증상:
./main실행 후 프로그램이 종료되지 않으며, 터미널 프롬프트가 나타나지 않음 - 원인: 코드 로직 오류로 인한 무한 루프 또는 입력 대기 상태 유지
- 해결 방법:
- 터미널 영역 클릭 후
Ctrl+C를 입력하여 실행 중인 프로세스 강제 종료 - 소스 코드 로직 수정 후 재저장 및 재컴파일
- 터미널 영역 클릭 후
스택 메모리 초과 (Stack Overflow)로 인한 비정상 종료
- 증상: 대용량 배열 선언이나 깊은 재귀 함수 호출 시
Segmentation fault메시지와 함께 프로그램 강제 종료 - 원인: 운영체제의 기본 스택 메모리 제한(일반적으로 8MB) 초과
- 해결 방법:
- 크기가 큰 배열(예:
int arr[10000000];등)은 함수 내부(지역 변수)가 아닌 외부의 전역 변수로 선언 - 터미널에서 스택 메모리 제한 임시 해제:
ulimit -s unlimited명령어 실행 후 프로그램 재실행
- 크기가 큰 배열(예:
기타 문제 질문 방법
문서에 안내된 내용으로 해결되지 않는 문제가 발생하여 질문할 때는 다음 정보를 포함해야 합니다.
- 사용 환경: Windows/WSL2 Ubuntu 또는 macOS
- 문제 발생 상황: 문제가 발생한 시점의 구체적인 조작 단계 및 실행한 터미널 명령어
- 오류 메시지 전문: 터미널에 출력된 에러 로그 전체 (이미지 대신 텍스트 형태로 복사하여 첨부)
- 전체 화면 캡처: 문제 상황과 파일 목록, 터미널 등이 모두 보이도록 VS Code 전체 화면을 캡처한 이미지
- 소스 코드: 컴파일이나 실행 문제인 경우 사용 중인 소스 코드 전체 내용