Sunday, February 25, 2007
C언어 에러 해결] unresolved external symbol _main referenced in function _mainCRTStartup
C소스를 컴파일하고 링크하여 실행 파일로 만들 때 "unresolved external symbol _main referenced in function _mainCRTStartup..." 이런 에러가 생길 수 있습니다. 이것은 프로그램의 본체가 되는 메인 함수 즉 main() 함수가 없기 때문에 생기는 링커 에러입니다.
링커 에러 화면:
에러 발생 예제 (메인 함수가 없기에):
에러 수정 예제 (메인 함수 추가):
즉, 위와 같이 C소스에 main() 함수를 추가해 주면 됩니다. 그런데 만약 그 C소스가 실행파일을 만드는 소스가 아니라, 라이브러리를 만드는 소스라면 메인 함수가 없습니다.
▶▶ C언어] argc, argv 파라미터(인수; 매개변수) 사용 예제; main Function Parameter
링커 에러 화면:
D:\Z>cl /nologo example.cpp && example.exe
example.cpp
LIBC.lib(crt0.obj) : error LNK2019: unresolved external symbol _main referenced
in function _mainCRTStartup
example.exe : fatal error LNK1120: 1 unresolved externals
D:\Z>
example.cpp
LIBC.lib(crt0.obj) : error LNK2019: unresolved external symbol _main referenced
in function _mainCRTStartup
example.exe : fatal error LNK1120: 1 unresolved externals
D:\Z>
에러 발생 예제 (메인 함수가 없기에):
#include <stdio.h>
void test() {
printf("test\n");
}
void test() {
printf("test\n");
}
에러 수정 예제 (메인 함수 추가):
#include <stdio.h>
void test();
int main (void) {
test();
return 0;
}
void test() {
printf("test\n");
}
void test();
int main (void) {
test();
return 0;
}
void test() {
printf("test\n");
}
즉, 위와 같이 C소스에 main() 함수를 추가해 주면 됩니다. 그런데 만약 그 C소스가 실행파일을 만드는 소스가 아니라, 라이브러리를 만드는 소스라면 메인 함수가 없습니다.
▶▶ C언어] argc, argv 파라미터(인수; 매개변수) 사용 예제; main Function Parameter
tag: cpp
C언어 | C/C++ (Visual C++)
<< Home