프로그래밍언어/C언어[Error]
[C언어][Error] 003. undefined reference to `main` – main 함수 정의 누락 오류
about_IT
2025. 4. 22. 23:16
728x90
이 오류는 컴파일 과정에서는 문제가 없지만, 링킹 단계에서 main 함수가 존재하지 않는 경우 발생합니다. C 프로그램의 진입점은 반드시 main 함수이며, 이 함수가 없으면 실행 파일을 생성할 수 없습니다.
보통 함수 이름을 잘못 입력하거나, main 함수가 주석 처리되었거나, main의 스펠링이 틀린 경우에도 이 오류가 발생합니다. 경우에 따라 main 함수의 반환형이 잘못되었거나, 컴파일 대상 파일에 main 함수가 아예 포함되지 않았을 수도 있습니다.
다음은 오류가 발생하는 잘못된 예시입니다.
#include <stdio.h>
// int mian() { ← 오타 발생
int mian() {
printf("Hello, world!\n");
return 0;
}
링커는 프로그램의 시작점을 찾지 못해 다음과 같은 오류를 출력합니다.
undefined reference to `main`
다음은 올바르게 수정한 예시입니다.
#include <stdio.h>
int main() {
printf("Hello, world!\n");
return 0;
}
정상적으로 컴파일되며, 출력 결과는 다음과 같습니다.
Hello, world!
● 실전 팁
- main 함수는 반드시 한 번만 정의되어야 하며, 이름을 정확히 입력하세요.
- 작성한 파일이 컴파일 대상에 포함되어 있는지 확인하세요.
- IDE 사용 시, 실행 파일에 포함되는 엔트리 파일이 무엇인지 점검해 보세요.
링커 오류는 함수 이름이 정확하더라도 컴파일되지 않은 파일이 있을 경우에도 발생할 수 있으므로, 컴파일 대상과 함수 정의 여부를 함께 점검하는 습관이 필요합니다.
728x90