컴파일러 오류 해설
컴파일러 오류는 게임을 컴파일하는 과정에서 발생하는 오류입니다. 이는 문법 검사기에서 탐지하지 못한 오류가 있을 때 주로 발생하며, 변수 선언을 잊거나 문자열을 실수로 잘못 입력하는 경우가 있습니다. 또한, 플랫폼 선호도에서 컴파일 도구가 잘못 설정되었을 때도 발생할 수 있습니다.
이 오류는 게임이 컴파일될 때 GameMaker에서 감지되며, 컴파일러 오류 출력에 오류 정보가 표시됩니다. 오류 메시지는 다음과 같은 형식을 따릅니다:
[객체] - [이벤트] - [라인 번호]: [오류 문자열]
스크립트에서 오류가 발견되면 다음과 같은 형식으로 표시됩니다:
[스크립트] - [라인 번호]: [오류 문자열]
오류 메시지를 더블 클릭하면 오류가 발생한 위치로 가게 됩니다. 그러나 오류 메시지가 다소 모호할 경우도 있습니다. 아래는 자주 발생하는 오류 목록과 간단한 설명입니다.
| 오류 코드 | 설명 |
|---|---|
| Miscellaneous | 프로그램을 컴파일할 수 없음 |
| Fatal Error while compiling | 컴파일할 수 없는 오류가 발생 |
| Unable to find TextureGroup[group] | 잘못된 프로젝트 파일을 실행하려 했을 때 발생 |
| Wrong to convert[value] to number | 주어진 값을 숫자로 변환하려고 하였으나 실패 |
| Division by 0 | 0으로 나누기 시도를 했음 |
| Invalid object id[object ID] used | 잘못된 ID로 객체에 접근하려 했음 |
| Unclosed comment (/*) at end of script | 스크립트의 주석을 닫지 않았음 |
| Invalid token | 허용되지 않는 문자를 사용한 경우 (외국어 문자 또는 유니코드 포함) |
| Unexpected EOF encountered | 파일의 끝을 예기치 않게 만남 |
| Using uninitialized variable[var] | 초기화되지 않은 변수를 사용하려고 함 |
| Wrong number of arguments for function | 함수에 잘못된 개수의 인자를 제공 |
| Calling a function that needs an instance | 인스턴스가 필요하지만 현재 인스턴스가 없음 |
컴파일러 오류는 게임을 컴파일하는 과정에서 발생하는 오류입니다. 이는 문법 검사기에서 탐지하지 못한 오류가 있을 때 주로 발생하며, 변수 선언을 잊거나 문자열을 실수로 잘못 입력하는 경우가 있습니다. 또한, 플랫폼 선호도에서 컴파일 도구가 잘못 설정되었을 때도 발생할 수 있습니다.
이 오류는 게임이 컴파일될 때 GameMaker에서 감지되며, 컴파일러 오류 출력에 오류 정보가 표시됩니다. 오류 메시지는 다음과 같은 형식을 따릅니다:
[객체] - [이벤트] - [라인 번호]: [오류 문자열]
스크립트에서 오류가 발견되면 다음과 같은 형식으로 표시됩니다:
[스크립트] - [라인 번호]: [오류 문자열]
오류 메시지를 더블 클릭하면 오류가 발생한 위치로 가게 됩니다. 그러나 오류 메시지가 다소 모호할 경우도 있습니다. 아래는 자주 발생하는 오류 목록과 간단한 설명입니다.
| 오류 코드 | 설명 |
|---|---|
| Miscellaneous | 프로그램을 컴파일할 수 없음 |
| Fatal Error while compiling | 컴파일할 수 없는 오류가 발생 |
| Unable to find TextureGroup[group] | 잘못된 프로젝트 파일을 실행하려 했을 때 발생 |
| Wrong to convert[value] to number | 주어진 값을 숫자로 변환하려고 하였으나 실패 |
| Division by 0 | 0으로 나누기 시도를 했음 |
| Invalid object id[object ID] used | 잘못된 ID로 객체에 접근하려 했음 |
| Unclosed comment (/*) at end of script | 스크립트의 주석을 닫지 않았음 |
| Invalid token | 허용되지 않는 문자를 사용한 경우 (외국어 문자 또는 유니코드 포함) |
| Unexpected EOF encountered | 파일의 끝을 예기치 않게 만남 |
| Using uninitialized variable[var] | 초기화되지 않은 변수를 사용하려고 함 |
| Wrong number of arguments for function | 함수에 잘못된 개수의 인자를 제공 |
| Calling a function that needs an instance | 인스턴스가 필요하지만 현재 인스턴스가 없음 |
활용 및 응용 예제
1. 변수 초기화 오류
var score; // 초기화되지 않은 변수를 사용
show_message("Score: " + score); // 오류 발생
해결 방법: 변수를 선언할 때 값을 초기화해야 합니다.
var score = 0; // 초기화
show_message("Score: " + score); // 정상 작동
2. 나누기 오류
var result = 10 / 0; // 0으로 나누기 시도
해결 방법: 나누기 연산 전에 0인지 체크해야 합니다.
var denominator = 0;
if (denominator != 0) {
var result = 10 / denominator;
} else {
show_message("0으로 나누기는 허용되지 않습니다.");
}
3. 잘못된 인자 수
var value = some_function(1); // 여기에 잘못된 인자 수 제공
해결 방법: 함수 정의에 따라 적절한 인자 수를 제공해야 합니다.
function some_function(a, b) {
return a + b;
}
var value = some_function(1, 2); // 정상 작동
이러한 예제를 통해 자주 발생하는 컴파일러 오류를 예방하고, 처리할 수 있는 방법을 익힐 수 있습니다.