HOWTO · Arduino
실제 오류를 읽어 Arduino 종료 상태 1 해결하기
종료 상태 1은 일반적인 실패 결과입니다. 앞의 진단을 읽고 컴파일 오류와 업로드 문제를 구분해 해결하세요.
이 페이지의 내용
exit status 1은 원인이 아니라 일반적인 실패 종료 표시입니다. 그 위에 있는 파일명과 줄 번호가 포함된 첫 오류를 읽으세요. 컴파일은 성공했지만 업로드만 실패하면, 동작하는 코드를 바꾸지 말고 보드, 포트, 부트로더를 확인합니다.
실제 진단 메시지 찾기
Compilation error: exit status 1 및 ld returned 1 exit status는 보고서의 마지막 요약입니다. 원인은 그 위에 있습니다. expected ';', was not declared in this scope, No such file or directory 같은 메시지를 찾고 도움을 요청할 때는 전체 출력을 공유하세요. Arduino 컴파일 안내에서 이 진단을 설명합니다.
최소 스케치로 확인하기
다음 정확한 스케치는 Arduino CLI 1.5.1, Arduino AVR Boards 1.8.8, arduino:avr:uno에서 컴파일되었습니다.
void setup() {}
void loop() {}
Uno에서는 arduino-cli compile --fqbn arduino:avr:uno <스케치-폴더>를 실행하고, 다른 보드에서는 FQBN을 바꾸세요. 이것도 실패하면 프로젝트 문법을 의심하기 전에 올바른 보드를 선택하고 보드 매니저에서 해당 플랫폼을 설치합니다.
표시된 오류 고치기
다음 테스트 스케치는 Serial.begin(9600) 뒤에 세미콜론이 없어 실패합니다.
void setup() {
Serial.begin(9600)
}
void loop() {}
관찰된 결과는 error: expected ';' before '}' token 다음 Error during build: exit status 1입니다. 세미콜론을 추가한 뒤 다시 컴파일하세요. 중괄호, 식별자 철자, 변수 범위도 검사합니다. 표시된 줄은 실제 오타 바로 다음 줄일 수 있습니다.
fatal error: SomeLibrary.h: No such file or directory라면 헤더 이름과 라이브러리 설명서를 확인하고 Sketch > Include Library > Manage Libraries에서 호환되는 라이브러리를 설치합니다. 스케치 옆에 .h 하나만 복사해도 의존성이나 보드 호환성은 설치되지 않습니다.
업로드 실패는 따로 진단하기
검증은 성공했는데 업로드가 status 1로 끝나면 문법 오류가 아닙니다. 보드와 포트를 확인하고, 그 포트를 사용하는 시리얼 모니터를 닫고, 보드를 다시 연결한 다음 필요하면 프로세서 또는 부트로더 옵션을 확인하세요. Arduino 업로드 안내를 참조하세요. 실제 보드와 시리얼 포트 없이는 컴파일 스케치로 업로드를 테스트할 수 없습니다.