error LNK2019: _main 외부 기호(참조 위치: ___tmainCRTStartup 함수)에서 확인하지 못했습니다.

MSVCRTD.lib(crtexe.obj) : error LNK2019: _main 외부 기호 (참조 위치: ___tmainCRTStartup 함수)에서 확인하지 못했습니다. C:\경로~\D3D_Normal.exe : fatal error LNK1120: 1개의 확인할 수 없는 외부참조입니다. D3D_Normal_2 - 오류: 2개, 경고: 0개 ========== 빌드: 성공 0, 실패 1, 최신 0, 생략 0 ==========


가끔 동료나 후배들이 프로젝트가 문제없는데, 왜 에러나냐고 이런 에러가있는 프로젝트를 주곤한다.
___tmainCRTStartup를 찾을 수 없다는 것은 CALLBACK함수인 main()을 찾지 못했다는 것이다.
 main() 함수가 없을때 발생하는 에러.

그런데 우린 main()함수가 있다? 이는 어찌된것인가?
-> 그렇다면 프로젝트 설정문제다. 
메뉴에서 프로젝트 > 속성 > 구성 속성 > 링커 > 시스템 > 하위 시스템에서 자신이 만들려는 프로젝트와 맞는 설정으로 바꿔준다. 

하위 시스템 설정

※ 비주얼 스튜디오로 프로젝트를 새로 작성할때 Win32에 두개의 템플릿을 선택할 수 있는데, 작성하고자 하는 프로그램과 다른 템플릿을 선택했을경우 위와 같이 에러가 난다.
콘솔에서는 프로그램의 시작점이 main(), 윈도우 프로그래밍에서는 WinMain()이 시작점이라서 그런것이다.

그럼 수고~

WIN32 템플릿 선택

이 글을 공유하기

댓글

Designed by JB FACTORY